async.times 函数不会触发回调
Posted
技术标签:
【中文标题】async.times 函数不会触发回调【英文标题】:async.times function does not fire the callback 【发布时间】: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
的新对象,但没有回调。我应该在我的代码中更改什么?感谢您的宝贵时间
【参考方案1】:
您的代码中的问题是mongoose
的save
函数只接受一个参数 - 回调函数。
所以你应该修改你的代码如下:
myObject.save(function(err,object)
console.log("saved");
console.log(n);
next(err,object);
);
【讨论】:
是的..这就是问题所在。async.times
的示例代码让我感到困惑。谢谢!
@cor 我检查了文档,他们确实对times
函数感到困惑以上是关于async.times 函数不会触发回调的主要内容,如果未能解决你的问题,请参考以下文章