gpt4 book ai didi

javascript - NodeJs 使用 async 和 for 循环下载

转载 作者:行者123 更新时间:2023-12-03 03:47:47 24 4
gpt4 key购买 nike

我有这个循环来下载一些文件,并且工作正常。

但是文件的下载顺序是“2,3,4,1,5”,而不是“1,2,3,4,5”。

我知道如何执行 .each 异步和 waterfall 异步,但我不知道如何执行此循环。

Config.TotalFiles = 5;

for(i = 1; i <= Config.TotalFiles; i++) {
$this.CreateJSONFile(i, function() {
cls();
});
}

当下载完成后,我想调用我的回调,我已经尝试过这个 if(id == Config.TotalFiles) 但它不起作用,因为 id 不好。

如何使用此循环完成“异步”过程?

谢谢

最佳答案

您可以使用 async.whilst 来实现此目的:

Config.TotalFiles = 5;
var count = 1;

//pass your maincallback that you want to call after downloading of all files is complete.

var callMe = function(mainCallback){
async.whilst(
function() { return count <= Config.TotalFiles; },
function(callback){
$this.CreateJSONFile(count, function() {
cls();
count++;
callback();
});
}, function(){
//This function is the final callback
mainCallback();
})
}

关于javascript - NodeJs 使用 async 和 for 循环下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45299773/

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