gpt4 book ai didi

javascript - Node.js/为什么 async.eachSeries 不调用回调?

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:38 25 4
gpt4 key购买 nike

我使用 eachSeries 有以下代码:

 var allLetters = ["1", "2", "3", "4"];
async.eachSeries(allLetters, function(arrObj, callback){
saveAllToS3(arrMain, arrObj);
console.log("Reach here");
}, function (err){
console.log("callback is called");
if (err){
console.log(err);
} else {
console.log("Completed");
}
});

我看到 saveAllToS3 仅执行一次,并且未调用回调(未打印“回调已调用”,也未打印错误或“已完成”)。

仅打印“到达此处”。

我希望 saveAllToS3 会调用 4 次。首先,该函数将以“0”调用,完成后,该函数将以“1”调用,依此类推。

最佳答案

只有当您告诉异步当前迭代已完成时,异步才能继续处理下一个输入项。您可以通过调用它为您的函数提供的回调来完成此操作:

 var allLetters = ["1", "2", "3", "4"];
async.eachSeries(allLetters,
function(arrObj, done){
saveAllToS3(arrMain, arrObj);
console.log("Reach here");
done();
},
function (err){
console.log("callback is called");
if (err) {
console.log(err);
} else {
console.log("Completed");
}
});

我发现将回调参数称为 done 之类的东西很有用,可以使代码更加明确。

关于javascript - Node.js/为什么 async.eachSeries 不调用回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25228854/

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