gpt4 book ai didi

javascript - 如何等待来自 Redux 操作创建者的多个 API 调用?

转载 作者:行者123 更新时间:2023-11-30 08:32:49 25 4
gpt4 key购买 nike

假设我在我的操作中调用了一个调度方法:

return dispatch(add_data(data)).then(function(response){console.log("Done")}

我的add_data 方法如下所示:

export function add_data(data){

return (dispatch, getState) => {

for(var i in data){
var data = {'url': data[i]}
return dispatch(myApi({url: "some_url", method: "POST", data: data,}
)).then(response => {
console.log(response)
return response.json()
}).then(response => {
console.log(response)
return dispatch({response, type: types.ADD_DATA})
})
}
}
}

它仅适用于 first 数据。仅发送 first 数据。它在循环内,我希望它能调度循环中的所有数据。

我怎样才能做到这一点?

谢谢

最佳答案

一旦您returnreturn 语句就会退出函数。如果您不想在循环中间从函数返回,请不要在循环中间从它return

您可以使用 Promise.all(promises) 创建一个在所有子 promise 都已解决时解决的 promise 。您可以在创建 promise 时将它们收集到一个数组中,然后返回 Promise.all(promises) 来表示它们:

export function add_data(data){
return (dispatch, getState) => {
var promises = [];

for (var key in data) {
var itemData = {'url': data[key]}

var promise = myApi({
url: "some_url",
method: "POST",
data: itemData
}).then(
response => response.json()
).then(response => {
dispatch({response, type: types.ADD_DATA})
})

promises.push(promise)
}

return Promise.all(promises)
}
}

关于javascript - 如何等待来自 Redux 操作创建者的多个 API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35309139/

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