变量在forEach中的更改没有保存



这里有这些行

let users = []
members.forEach(member => {
let profile
db.get(member.id).then(value => {
profile = JSON.parse(value)
})
if(profile == null)
return
if(profile.bank + profile.cash > 0)
{
let user = new User(member, profile)
users.push(user)
}
})
console.log(users)

我想将User对象保存到users数组中,但是在forEach循环之外,它是未定义的。有人能帮我吗?

你的问题是javascript是如何工作的——

(member => 

表示函数调用。但是,当您访问控制台日志时,该函数可能还没有完成。你需要一个承诺来确保它完成。

等待.forEach()完成的最佳方法

最新更新