在 nodejs 中使用异步等待的叉子不起作用

Fork with async await in nodejs not working

我试过在节点中分叉。对于简单的计算,它似乎工作正常。但是当我使用 for 循环时,我没有得到任何结果。我也尝试过使用 promise,但我得到的只是 promise pending。下面是使用的代码。

在moduleProgress.js中:

const getModules = async (studentArray) => {
  let progress = [];
  for (const student of studentArray) {
    console.log(student); //prints the first student id an then nothing happens
    let std = await User.findById(student); //stops here
    console.log(std); //nothing
    std = {
      username: std.username,
      firstname: std.firstname,
      lastname: std.lastname,
      batch: std.batch,
    };
    progress.push(std);
  }
  return progress;
};

process.on("message", async (params) => {
  const progress = await getModules(params.students);
  process.send(progress);
});

在另一个文件中:

if (students.length > 0) {
        const calculation = fork("helpers/moduleProgress.js");
        calculation.send({
          students: students,
        });
        calculation.on("message", (response) => {
          allStatus = response;
          console.log(response)
        });
        res.json({
          success: true,
          allProgress: allStatus,
        });

解决了。 在 moduleProgress.js (child) 中调用了 mongoose 的实例,它起到了很好的作用。