当同时处理请求时,如果有非200代码,它将被捕获在catch块中,而不是我想过滤掉它们。似乎可以使用node fetch但不能使用axios,还有其他方法吗?
try {
const requests = urls.map((url) => axios.get(url));
const responses = await axios.all(requests);
const failedResponses = responses.filter(
(response) => response.status !== 200
);
} catch (error) {
console.error(error)
}
我不想在catch块中抛出一个错误,我想过滤掉错误。
1条答案
按热度按时间oknwwptz1#
您可以利用Promise. allSettled过滤Axios并行请求场景中的失败响应。以下是如何调整代码来实现这一点~
然后,代码允许您根据应用程序的需要分别处理successfulResponses和failedResponses。这个压缩代码保持了与原始代码相同的功能,但以更简洁和可读的形式呈现。