0
工作,我有以下代码:异步伺机不在的forEach
async function goodUsers(users) {
const filteredUsers = [];
users.forEach(async (userInstance) => {
console.log('TEST1');
const fromUserContacts = await db.userContactInvite.findAll({
where: {
fromUserId: userInstance.id,
},
});
console.log('TEST2');
await fromUserContacts.forEach((fromUserContact) => {
console.log('TEST3');
const userJson = fromUserContact.toJSON();
userJson.contactState = 'INVITATION_SENT';
filteredUsers.push(userJson);
});
console.log('TEST4');
});
console.log('FILTERED', filteredUsers);
return filteredUsers;
}
当我打电话goodUsers我得到以下输出: TEST1 FILTERED TEST2 TEST3 TEST4
FILTERED应该是最后一次(明显)。
我尝试了各种选择,但我似乎并没有在这里理解一些东西。你们知道发生了什么事吗?
请问您的数据库的方法实际上是返回一个承诺? – Paul
没有人工作 –
[在循环中使用async/await]可能的副本(https://stackoverflow.com/questions/45505517/using-async-await-inside-for-loop) –