gpt4 book ai didi

javascript - 给定字符串数组,迭代每个字符串并调用基于 Promise 的函数,但要等到上一个迭代完成后再继续吗?

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

我有一个字符串数组...

var urls = ["http:/www.google.com", "http:/www.giantbomb.com", "http:/www.stackoverflow.com"]

我需要为每个函数调用一个基于 Promise 的函数......但是我想等待前一个函数完成后再调用下一个函数。

_.forEach(urls, function(url){ 
promiseFunc(url); //BUT IT SHOULD WAIT TO CONTINUE FOR LOOP
});

有什么好的方法可以实现这一点吗?

我也在使用 AngularJS。

最佳答案

在现代环境中,使用async函数和循环:

// In an `async` function
try {
for (const entry of urls) {
await promiseFunc(url);
}
// All done
} catch (error) {
// Handle/report error
}

如果您不想使用async函数,请使用“promise reduce”技巧:

urls.reduce(
(p, url) => p.then(() => promiseFunc(url)),
Promise.resolve()
)
.then(() => {
// All done
})
.catch(error => {
// Handle/report error
});

关于javascript - 给定字符串数组,迭代每个字符串并调用基于 Promise 的函数,但要等到上一个迭代完成后再继续吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57097488/

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