我刚阅读完一篇关于Fetch vs Axioshere的文章:
作者提出了一个观点:
“*Axios抛出网络错误,而fetch不会。使用fetch时,必须始终检查response.ok属性 *”
Axios不需要if (!response.ok) throw Error(response.statusText)
我不太明白为什么以及如何在Axios中处理网络错误,Axios请求不需要if(!response.statusText !== 'OK') throw new Error(....)
是正确的吗?
这里也是我的axios要求,请你说它的好标准,至少?
const fetchData = async (url) => {
setFetchError(false);
try {
const response = await axios.get('/api/movies');
return response.data;
} catch (err) {
setFetchError(true);
}
};
字符串
1条答案
按热度按时间s71maibg1#
我不太明白为什么以及如何在Axios中处理网络错误& Axios请求不需要if(!response.statusText!== 'OK')throw new Error(....)?
Axios不需要检查响应状态是否不正常(2XX状态代码)是正确的。
IMHO Axios利用网络状态码的概念来抛出错误,例如4XX和5XX状态的响应。(您可以查看更多HTTP状态响应here)您会看到MDN将HTTP状态代码分为4类:信息、成功、重定向和错误。
作为一名程序员,我更喜欢使用Axios而不是Fetch,只是因为它如何处理网络错误。