所以我得到了这个
for(var i =0;i<result.length;i++){
User.find(result[i].user).then((err,user)=>{
resultArray.push({name : result[i].name, userName : user.name});
}
}
但它不起作用,因为循环在promises结算之前结束。 所以我想知道我是否可以将i的副本提供给User.find()回调? 我不知道如何保持数据在结果和用户数组之间同步,因为我不知道承诺将以哪种顺序得到解决。
答案 0 :(得分:0)
在评论部分提到,您要解析所有用户。您可以使用Array方法map
生成一个Promises数组,然后传递给Promise.all,如下所示:
Promise.all(
result.map( res => User.find( ... ) )
)
.then( result => {
// all resolved users are in result
} );