gpt4 book ai didi

javascript - fetch() 多次循环后调用函数

转载 作者:行者123 更新时间:2023-11-30 09:15:41 24 4
gpt4 key购买 nike

如果我想调用 doStuff()当多个 fetch 循环是芬兰语时,我将如何处理它?<​​/p>

我假设每次提取完成时我都需要调用一个函数,并检查两个数组长度的 concat 是否在最后一个?

let array1 = [1,2]
let array2 = [7,8]

array1.map(function(item){
fetch("/api/execution/"+item, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
});

array2.map(function(item){
fetch("/api/something/"+item, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
});

//call doStuff only when all the fetchs are done

function doStuff(){
console.log("yay")
}

最佳答案

您正在使用 .map() 来启动请求,但您没有保存返回的 Promise 实例。

let p1 = array1.map(function(item){
return fetch("/api/execution/"+item, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
});

array2 也类似。然后,您可以连接两个 Promise 数组并使用 Promise.all():

let p1 = array1.map(function(item){
return fetch("/api/execution/"+item, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
});

let p2 = array2.map(function(item){
return fetch("/api/something/"+item, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
});

Promise.all(p1.concat(p2)).then(function(fetchedValues) {
// all fetch calls are finished
});

关于javascript - fetch() 多次循环后调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55228149/

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