【发布时间】:2019-01-15 05:54:56
【问题描述】:
在 node.js 中,我需要使用包含 Array.foreach 的 function procesMultipleCandidates (),该过程将每个元素插入到数据库中。但是整个函数应该在完成所有插入操作后返回响应
JavaScript 代码
async function procesMultipleCandidates (data) {
let generatedResponse = []
await data.forEach(async (elem) => {
try {
// here candidate data is inserted into
let insertResponse = await insertionInCandidate(elem)
//and response need to be added into final response array
generatedResponse.push(insertResponse)
} catch (error) {
console.log('error'+ error);
}
})
console.log('complete all') // gets loged first
return generatedResponse // return without waiting for process of
}
如上所述,最后一个 return 语句不等待 foreach 执行首先完成。
【问题讨论】:
-
您的 data.forEach 本身会阻止执行,直到回调完成执行。此时您不需要使用“等待”。
标签: javascript node.js foreach async-await