【问题标题】:async.times function does not fire the callbackasync.times 函数不会触发回调
【发布时间】:2015-03-29 18:00:09
【问题描述】:

我正在努力使async 正常工作。在这个例子中,我想创建并保存多个mongoose对象,并在工作完成时获取回调。

即使对象保存在数据库中,回调也不会触发。控制台日志也不会显示。谁能帮我找出我错过了什么?

var number_of_objects = 5;
async.times(number_of_objects, function(n, next){
    var myObject = new Object({ random_string : Math.random().toString(36).substring(7), isActive: false });
    myObject.save(n,function(err,object) {
        console.log("saved");
        console.log(n);
        next(err,object);
    });
},function(err, objects) {
    console.log(objects);
    res.sendStatus(200);
});

在此先感谢

【问题讨论】:

  • 您确定没有发生错误吗?您每次都在创建 myObject,但您保存了 n 对象
  • 没有错误,创建了 5 个具有不同 random_string 的新对象,但没有回调。我应该在我的代码中更改什么?感谢您的宝贵时间

标签: node.js asynchronous express mongoose


【解决方案1】:

您的代码中的问题是mongoosesave 函数只接受一个参数 - 回调函数。

所以你应该修改你的代码如下:

myObject.save(function(err,object) {
    console.log("saved");
    console.log(n);
    next(err,object);
});

【讨论】:

  • 是的..这就是问题所在。 async.times 的示例代码让我感到困惑。谢谢!
  • @cor 我检查了文档,他们确实对times 函数感到困惑
猜你喜欢
  • 2011-11-23
  • 2012-06-20
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 2014-01-26
  • 2010-10-09
  • 1970-01-01
  • 2015-10-27
相关资源
最近更新 更多