首页 > web前端 > js教程 > 正文

当状态代码不正常时如何拒绝 Fetch Promise 并捕获错误?

DDD
发布: 2024-11-24 08:00:12
原创
833 人浏览过

How to Reject a Fetch Promise and Catch Errors When the Status Code is Not OK?

如何拒绝 Fetch Promise 并在状态不正常时捕获错误?

许多现代 JavaScript 应用程序使用 Fetch API 发出 HTTP 请求。 Fetch API 返回一个解析为 Response 对象的 Promise 对象。 Response 对象可用于访问响应的状态代码、标头和正文。

有时,服务器会使用指示错误的 HTTP 状态代码进行响应。例如,如果未找到请求的资源,服务器可能会响应 404 状态代码。默认情况下,当服务器响应非 2xx 状态代码时,Fetch Promise 不会拒绝。

这可能会使处理代码中的错误变得困难。要解决此问题,您可以在解析或拒绝 Promise 之前使用 status() 函数检查 Response 对象的状态代码。以下是当状态代码不正常时如何使用 status() 函数拒绝 Fetch Promise 的示例:

function fetchVehicle(id) {
    return dispatch => {
        return dispatch({
            type: 'FETCH_VEHICLE',
            payload: fetch(`http://swapi.co/api/vehicles/${id}/`)
                .then(status)
                .then(res => res.json())            
                .catch(error => {
                    throw(error);
                })
            });
    };
}

function status(res) {
    if (!res.ok) {
        return Promise.reject()
    }
    return res;
}
登录后复制

如果 Response 对象的状态代码不正确,则此代码将拒绝 Fetch Promise不行。然后,您可以使用 .catch() 方法来处理错误。

以下是如何使用 .catch() 方法来处理错误的示例:

fetchVehicle(1).catch(error => {
    console.log(error);
});
登录后复制

This代码会将错误记录到控制台。

以上是当状态代码不正常时如何拒绝 Fetch Promise 并捕获错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板