由于某种原因 then 函数在 promise.all() 中的部分被执行之前执行
const Uploader = async (req, res, myFunc) => {
const fileIds = req.body.fileIds;
const dataArray = [];
await Promise.all([
fileIds.forEach(fileId => {
fileServer.UploadCreds(req.user.organization.ssoId, req.user.ssoId, (err, data) => {
console.log(" in promise 1----",dataArray)
data.fileId = fileId,
dataArray.push(data)
console.log(" in promise 2----",dataArray)
});
})
]).then(()=>{
console.log(" in promise 3----",dataArray)
return myFunc(req.params.id, req.user, dataArray, apiUtils.respond(res))
})
};
我也尝试用 return 替换 await,从 promise all 内部调用 myFunc 并返回它,但“in promise 3”总是在其他两个日志之前打印一个空数组。我还尝试添加一个 catch 块,以防承诺失败,但事实并非如此。