繁体   English   中英

在async.waterfall方法中构造猫鼬回调。

[英]Structuring mongoose callbacks in an async.waterfall method.

我的async waterfall的第一个函数是使用_id作为输入并使用findOne()方法从具有该特定_id的文档中获取两个属性的函数。 然后,我在callback函数中将这两个属性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 ...

我看到的问题是,在findOne方法仍在执行时调用了callback ,因此变量未定义并且进程崩溃。

我知道我需要对代码进行结构化,以便仅在猫鼬完成对数据库的查询时才callback ,但是我不确定如何做到这一点,并且已阅读此处的所有相关文章,但仍然无法解决。

任何帮助都会很棒,谢谢。

好吧,你应该在猫鼬回调里面做:

async.waterfall([
      function (callback) {
            Results.findOne({_id:match_id}, function(result) {
                  ...
                  callback(match_date, match_week);
            });
      },
      ...
]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM