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) –