gpt4 book ai didi

angularjs - 等待循环中的异步函数在下一次迭代之前完成执行

转载 作者:行者123 更新时间:2023-12-04 02:18:17 25 4
gpt4 key购买 nike

我有一组图像 url 可以异步下载。我需要等待下一次迭代,直到第一个异步任务完成。这是我的代码片段:

 downloadQueue.forEach(function (download, idex) {

download.startAsync().then(
function (res) { console.log('onSuccess'); },
function (err) { console.log('onError'); },
function (msg) {
var progressPrecent = parseFloat(msg.bytesReceived / msg.totalBytesToReceive * 100).toFixed(2);
console.log('Progress: ' + progressPrecent);
});
});

第一个 url 下载完成后,应该开始下一个(迭代)。我应该如何修改这段代码才能开始工作?任何帮助..

最佳答案

你会想做一些递归的事情。

这样,您只有在 promise 从下载返回后才开始下一次下载。

//Declare the recursive function
var startDownload = function(downloadQueue,i) {
download.startAsync().then(
function (res) { console.log('onSuccess'); },
function (err) { console.log('onError'); },
function (msg) {
var progressPrecent = parseFloat(msg.bytesReceived / msg.totalBytesToReceive * 100).toFixed(2);
console.log('Progress: ' + progressPrecent);

//If there are more items to download call startDownload
if(i < downloadQueue.length) {
startDownload(download,i+1);
}
});
}

//Initialize Function
startDownload(downloadQueue,0);

关于angularjs - 等待循环中的异步函数在下一次迭代之前完成执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32740236/

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