首页 > 解决方案 > 在for循环中串行发送多个axios请求(一个接一个)

问题描述

目前我正在使用 Promise.all() 一次发送多个 axios 请求,但我想一个一个发送请求,这意味着在第一个请求完成后发送第二个请求。

这一点很重要,因为 POST 请求的时间戳很重要。对数组第 0 个元素中的 promise 的 POST 请求需要具有比第一个元素中的 promise 更早的时间戳,依此类推。

这是我到目前为止编写的代码。

Promise.all(
  rowNodes.map((row) => {
    axios.post(url, row, axiosOptions);
  })
)
  .then((responseArr) => {
    console.log(responseArr);
  })
  .catch((errorArr) => {
    console.log(errorArr);
  });

标签: javascriptreactjsaxios

解决方案


请尝试在函数for内使用循环async/await。像下面

const someFunc = async () => {
  ...
  const responses = [];
  for (let i = 0; i < rowNodes.length; i++) {
    responses.push(await axios.post(url, rowNodes[i], axiosOptions));
  }
  ...
}

推荐阅读