许多现代 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中文网其他相关文章!