async.times函数不会触发回调

时间:2015-01-30 09:31:13

标签: node.js asynchronous express mongoose

我正在尝试使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);
});

非常感谢提前

1 个答案:

答案 0 :(得分:3)

代码中的问题是mongoose的{​​{3}}函数只接受一个参数 - 回调函数。

因此,您应该将代码修改为以下内容:

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