我正在尝试在使用forEach
循环的函数中使用async
和await
。令人烦恼的是,我无法使其正常工作。应该发生的是它接受一个事件docs
数组,遍历它们,添加一些额外的数据,然后将它们推送到events
数组中。这个events
数组然后从原始函数返回。这是我的代码:
async function getEvents() {
...
var events = []
await addExtrasToDocsForUser(docs, currentUserId, events)
return events
}
var addExtrasToDocsForUser = (docs, currentUserId, events) => {
return docs.forEach(async (eventDoc) => {
const event = await addExtrasToDocForUser(eventDoc, currentUserId)
events.push(event)
})
}
实际发生的是getEvents()
函数在forEach
循环完成之前将events
返回为空数组。我该如何修复?
getEvents()
函数中,我需要说await addExtrasToDocsForUser(docs, currentUserId, events)
吗?还是可以将其中的await
删除掉? - Tometoyouawait
。如果您将其删除,它只会启动 Promise,而不等待 Promise 首先解决。 - Nino Filiu