【问题标题】:How network errors are handled in Axios vs Fetch?Axios vs Fetch 如何处理网络错误?
【发布时间】:2020-04-29 17:14:21
【问题描述】:

我刚刚读完一篇关于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);
        }
    };

【问题讨论】:

    标签: javascript api axios fetch


    【解决方案1】:

    我不太明白为什么以及如何处理网络错误 Axios & Axios 请求不需要 if(!response.statusText !== 'OK') throw new Error(....) ?

    正确的是,axios不需要检查响应状态是否OK(2XX状态码)。

    恕我直言,Axios 利用网络状态代码的概念来引发错误,例如具有 4XX 和 5XX 状态的响应。 (您可以查看更多HTTP状态响应here)您会看到MDN将HTTP状态码分为4类:信息、成功、重定向和错误。

    作为一名程序员,我更喜欢使用 Axios 而不是 Fetch,因为它处理网络错误的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 2020-08-06
      • 1970-01-01
      • 2018-10-02
      相关资源
      最近更新 更多