我的async waterfall
中的第一个功能是将_id
作为输入,并使用findOne()
方法从具有该特定_id
的文档中获取两个属性。然后我将callback
中的这两个属性传递给瀑布中的下一个函数。这是非工作代码:
async.waterfall([
function (callback) {
Results.findOne({ _id:match_id }, function (result) {
var match_date = result.match_date;
var match_week = result.week;
});
callback(match_date, match_week);
},
function (match_date, match_week) {
// ...
// do something with the date and week ...
我发现问题是在callback
方法仍在执行时调用findOne
,因此变量未定义且进程崩溃。
我知道我需要构造代码,以便只有当mongoose完成查询数据库时才会调用callback
,但是我不知道如何执行此操作并且已经阅读了所有相关帖子,但仍然可以我不知道了。
任何帮助都会很棒,谢谢。
答案 0 :(得分:1)
好吧,你应该在mongoose回调中做到这一点:
async.waterfall([
function (callback) {
Results.findOne({_id:match_id}, function(result) {
...
callback(match_date, match_week);
});
},
...
]);