我有一个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
一些附加说明:
- 使用.forEach以提高可读性
- 使用
axios.post({}).then(response => {}).catch(err => {})
,可以省略。然后只保留.catch()