var membersStatArray = [];
membersArray.forEach(function(member) {
db.doneTodo
.find({ 'victor._id': member._id })
.then((arrayOfUserVictories) => {
membersStatArray.push({
email: member.email,
victories: arrayOfUserVictories.length
});
})
});
console.log(membersStatArray);
事实并非如此不管db是什么。
我知道 NodeJS 是异步的,但是添加到数组然后打印数组的方法是什么?
现在发生的事情是,
console.log(membersStatArray) --> []
因为它需要空数组。
过去这是什么?
修改您的代码以使其使用Promise.all将所有承诺收集到一个承诺中,当所有单独的承诺都解决时,该承诺将得到解决:
Promise.all(membersArray.map((member) => {
return db
.doneTodo
.find({'victor._id': member._id})
.then((userVictories) => ({
email: member.email,
victories: userVictories.length
}));
})).then((memberStats) => {
console.log(membersStats);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)