.then() 在 promise.all() 完成之前执行

时间:2021-06-07 05:44:45

标签: javascript async-await promise

由于某种原因 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 块,以防承诺失败,但事实并非如此。

0 个答案:

没有答案
相关问题