我创建了以下功能:
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(...)。然后不是函数
我想在执行功能后将修改后的结果发送给浏览器。 ,有人能告诉我,我做错了吗。
答案 0 :(得分:-1)
如果你想以这种方式使用,你需要让replace返回一个promise。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
可能因为您想要进行多个查询,所以您将使用Promise.all。