首頁 > 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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板