我如何在try-and-catch中循环以继续发出请求,而不会在出现错误时崩溃


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循环中,这样,如果一个请求失败,它将被捕获,您可以进行一些额外的错误处理,循环的其余部分将继续。

最新更新