【发布时间】:2021-01-23 18:56:49
【问题描述】:
我正在尝试更新 userList... 中用户的数组列表,如果 userDetails.length 不为零,则拥有一个名为 valid 的属性。
但 userList 永远不会更新。
userList.map(async function(user) {
let userId = user.id
await db.queryUser(userId)
.then(function(userDetails){
if(userDetails.length !== 0){
user.valid = true;
}
});
});
我试过这样做:
let filteredList = userList.map(async function(user) {
let userId = user.id
await db.queryUser(userId)
.then(function(userDetails){
if(userDetails.length !== 0){
user.valid = true;
}
});
});
但承诺仍处于未决状态。有什么更好的方法吗?
更新
使用以下代码让它工作:
await Promise.all(userList.map(async function(user) {
let userId = user.id
await db.queryUser(userId)
.then(function(userDetails){
if(userDetails.length !== 0){
user.valid = true;
}
});
})
)
【问题讨论】:
标签: javascript arrays object ecmascript-6 promise