gpt4 book ai didi

javascript - 在 Node js 的异步 foreach 循环中使用 collection.save() 时未调用回调

转载 作者:行者123 更新时间:2023-12-03 04:34:45 25 4
gpt4 key购买 nike

我的目标是将记录保存在异步 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 之后调用的 block 。

如果我评论 save 部分,正如预期的那样,回调工作正常。我不明白我在哪里做错了。可能 collection.save() 不应该是这样的。请指导。

最佳答案

object.save() 也是异步的,因此您必须将回调函数与 save 方法一起使用,例如:

object.save(function(error) {
count++;
console.log(count);
if(error) {
console.log("inside error");
count--;
}
callback();
});

关于javascript - 在 Node js 的异步 foreach 循环中使用 collection.save() 时未调用回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43345103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com