【发布时间】:2019-02-22 21:09:21
【问题描述】:
我在 react native 中有一个组件,可以显示用户的所有聊天记录。主要逻辑必须在 componentDidMount() 中。这里是简化版:
componentDidMount(){
ConnectyCube.chat.list({}, function(error, dialogs) {
chats = dialogs.map(chat => {
const opponentId = //some logic
ConnectyCube.users.get(function(error, res){
//some logic to populate chats
});
}
)
this.setState({chats: chats})
}
);
}
换句话说,主要问题是我不知道如何使用多个回调(用户拥有的每个聊天一个)来处理数据结构“聊天”,以便在最后设置状态。 也许,我的问题是我正在以同步的方式思考,因为我是事件驱动方法的新手。任何帮助表示赞赏。
【问题讨论】:
-
你可能想看看这个承诺
-
没错,也许是
Promise.all -
“手动方式”是跟踪已完成的响应数量,当该值等于数组中的项目数时,您会触发一些“最终回调”
-
ConnectyCube 是一个不提供承诺,而只提供回调的 API。
-
@James 我如何跟踪已完成的回复数?
标签: javascript react-native callback connectycube