即使在等待诺言之后,最终语句也会在上述语句执行之前执行

在下面的代码中,我正在等待猫鼬的数据库调用解决。即使这样,最终声明 res.json({err: null,data: studentArray})在上述循环完成之前执行。

这是该功能的完整代码。

router.post("/",moderator,(req,res) => {
 const { filters } = req.body;
  const { students } = filters;
  const studentArray = [];
  try {
    if (students.branches) {
      students.branches.forEach(async branch => {
        const departments = await Department.find({ name: branch });
        departments.forEach(async dept => {
          const studentPerBranch = await Student.find({ branch: dept.id });
          // console.log(studentPerBranch);
          studentArray.push(studentPerBranch);
        });
      });
      res.json({ err: null,data: studentArray });
    } else res.status(404).json({ err: "Branches not found" });
  } catch (err) {
    res.status(500).json({ err,data: null });
  }
});
daguai123456 回答:即使在等待诺言之后,最终语句也会在上述语句执行之前执行

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3133786.html

大家都在问