javascript - 在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);
});
解决方案
请尝试在函数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));
}
...
}
推荐阅读
- html - 未对齐的第一列与列数
- python - 使用 groupby 构造数据框
- php - PHPExcel动态列范围不起作用
- scala - 在 Databricks 上安装 GeoMesa
- django - 将哨兵插件配置到 Heroku 应用程序时出现 UTF-8 编码错误
- javascript - ActionScript/Javascript 上的 ToFixed 函数
- javascript - 如何在另一个脚本标签中使用 javascript 函数变量?
- python - 错误 PackagesNotFoundError:以下包在 Pypi 包的当前频道中不可用
- three.js - 当用户单击该面时绘制立方体的面
- bash - 是否可以将 Dockerfile 中的 ENV 变量与正则表达式或类似的内容进行比较?