执行函数NodeJS

时间:2018-03-07 19:22:40

标签: node.js

我创建了以下功能:

    Board.aggregate(pipeline, function (err, result) {
      if (err) res.send(err);

      replace(result)
        .then((result) => {
          res.send(result);
        })

    })
  })


function replace(result)  { 
  result.forEach((element, key) => {
    User.find({ _id: element.boardcards.members })
      .then((users) => {
        element.boardcards.members = [];

        for (var i = 0; i < users.length; i++) {
          element.boardcards.members.push(users[i].firstName + ' ' + users[i].surname);
        }
        console.log(element.boardcards.members)
      })
  }) 
  return result; 
}

当我运行项目时,我有错误:

  

TypeError:replace(...)。然后不是函数

我想在执行功能后将修改后的结果发送给浏览器。 ,有人能告诉我,我做错了吗。

1 个答案:

答案 0 :(得分:-1)

如果你想以这种方式使用,你需要让replace返回一个promise。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

可能因为您想要进行多个查询,所以您将使用Promise.all。