如何在For循环中执行多个axios POST请求,每个循环的迭代都有不同的主体数据



我有一个postData数组,每个元素都是每次发出Axios POST请求时需要传入的主体。

我在运行脚本时遇到了未处理的promise拒绝错误,我对异步编程还很陌生,一直在与这个错误作斗争。

脚本如下:

const axios = require('axios')
const fs = require('fs')
var textFileContainingData = fs.readFileSync('data.txt').toString().split("rn");
console.log(textFileContainingData);
let axiosConfig = {
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer XXXXXX',
'X-Correlation-ID': '1234',
}
};
for (i=0; i<textFileContainingData.length; i++) {

var postData = {
data: textFileContainingData[i]
};
console.log(postData)

const getData = async () => {
try {
return await axios.post('https://example-api-url/endpoint', postData, axiosConfig)
} catch (error) {
console.error(error)
}
}

const callEndpoint = async () => {
const responseData = await getData()

console.log(responseData)
}

callEndpoint();
}

我的第一个答案是错误的,我已经删除了它。该错误与一个承诺有关,可能是axios.post失败了,请在尝试代码后发布您的stacktrace

一些附加说明:

  1. 使用.forEach以提高可读性
  2. 使用axios.post({}).then(response => {}).catch(err => {}),可以省略。然后只保留.catch()

最新更新