let array = [];
try {
for (let i = 0; i < postcodes.length; i++) {
const companyHouseData = await axios.get(`https://api.company-information.service.gov.uk/advanced-search/companies?location=${postcodes[i}`,{auth});
if (companyHouseData.status) {
array.push(companyHouseData)
}
}
}catch{
console.log(err);
}
我在 for 循环中发出请求,并将每个响应推送到一个数组。
我这里遇到的问题是当出现错误请求时(404状态代码)。我的循环中断并且错误被捕获。
如何让循环在出现状态码 404 时继续发出请求而不崩溃?
如果你想继续使用 axios 发出请求,你应该尝试/捕获 axios 调用,而不是整个 for 循环。
代码应如下所示:
let array = [];
for (let i = 0; i < postcodes.length; i++) {
try {
const companyHouseData = await axios.get(`https://api.company-information.service.gov.uk/advanced-search/companies?location=${postcodes[i]}`,{auth});
if (companyHouseData.status) {
array.push(companyHouseData)
}
} catch (error) {
console.error(error);
}
}
我建议将 try catch 放在每个请求的 for 循环中,这样如果一个请求失败,它将被捕获,并且您可以执行一些额外的错误处理,循环的其余部分将继续。