我的目标是将记录保存在异步foreach循环中的mongoDB集合中。以下代码说明了自己。
async.forEach(data, function(item, callback) {
var object = new Collection_Object();
// errorLog.push(sdb);
object.save(function(error) {
count++;
console.log(count);
if(error) {
console.log("inside error");
count--;
}
//callback();
});
callback();
}, function() {
//This is the block which should be called after foreach.
res.json(data);
});
现在发生的事情是流程跳过save
部分并直接跳转到应在forEach
之后调用的块。
如果我正在评论save
部分,正如预期的那样,回调功能正常。
我不知道我在哪里做错了。可能collection.save()
不是假设是这样的。
请指导。
答案 0 :(得分:1)
object.save()
也是异步的,所以你必须使用带有save方法的回调函数,例如:
object.save(function(error) {
count++;
console.log(count);
if(error) {
console.log("inside error");
count--;
}
callback();
});