gpt4 book ai didi

javascript - 如何将多个 Axios 调用链接在一起,以便它们同步运行并且每个调用都可以使用前一个调用返回的数据

转载 作者:行者123 更新时间:2023-12-01 00:54:34 29 4
gpt4 key购买 nike

我有一个项目数组,我需要为数组中的每个项目执行 Axios 发布。每个项目都依赖于从前一个项目返回的数据,因此我需要它们同步执行。我面临的问题是我不知道数组中有多少项。如果我知道数组计数,我可以执行以下操作:

let my_array = [34, 44, 72];

axios.post(
'url-to-get-data',
{
post_data_1: my_array[0]
}
).then(res => {
axios.post(
'url-to-get-data',
{
post_data_1: my_array[1],
post_data_2: res.data
}
).then(res => {
//Third axios post.....
}
).catch();
}
).catch();

有谁知道我怎样才能实现这个目标?

最佳答案

您本质上是在问如何链接(未知长度的)异步工作。

使用 promise (和递归):

let asyncDec = count => Promise.resolve(count - 1);

let handler = count => {
console.log('handled', count);
if (count)
return asyncDec(count).then(handler)
};

asyncDec(10).then(handler);

使用等待/异步:

let asyncDec = async count => count - 1;

let main = async () => {
let count = 10;
while (count >= 0) {
console.log('handled', count)
count = await asyncDec(count);
}
};
main();

关于javascript - 如何将多个 Axios 调用链接在一起,以便它们同步运行并且每个调用都可以使用前一个调用返回的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56692303/

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