【发布时间】:2020-02-12 08:02:06
【问题描述】:
我有以下代码:
export function getMembersInDB(status) {
if (this.state.data) {
let membersObject = this.props.members;
let membersList = [];
Object.keys(membersObject).map(async (key) => {
membersObject[key]['uid'] = key;
membersObject[key]['profilePic'] = require("../../assets/img/empty-avatar.png");
if (membersObject[key]['mStatus'] == status) {
membersList.push(membersObject[key]);
}
});
this.setState({
data: membersList,
loading: false,
});
}
}
关于整个异步的事情,我想知道。 this.setState 会等待 Object.keys 映射在设置之前完成执行,还是 this.setState 有可能在之前更新?
【问题讨论】:
-
使用 Promise.all 将 Object.keys 包裹起来,并将
getMembersInDB变成一个异步函数就能使 setState 工作。
标签: reactjs