首頁 > web前端 > js教程 > 如何優雅地處理基於 HTTP 狀態碼的取得錯誤?

如何優雅地處理基於 HTTP 狀態碼的取得錯誤?

Mary-Kate Olsen
發布: 2024-11-10 02:13:02
原創
623 人瀏覽過

How Can You Gracefully Handle Fetch Errors Based on HTTP Status Codes?

捕獲帶有回應狀態的提取錯誤

您正在將fetch() API 與Redux 和redux-promise-middleware 庫結合使用。在您的程式碼片段中,您嘗試檢查回應狀態並處理任何錯誤。但是,您遇到了 Promise 未被拒絕的問題。

了解 Fetch Promise 拒絕

Fetch Promise 的獨特之處在於,它們僅因以下原因而拒絕網路錯誤。帶有 4xx(客戶端錯誤)和 5xx(伺服器錯誤)等狀態代碼的回應被視為非網路錯誤。因此,它們不會觸發拒絕。

解決問題

要克服此限制並處理與狀態相關的錯誤,您需要手動拋出錯誤:

fetch(url)
  .then((response) => {
    if (response.ok) {
      return response.json();
    }
    throw new Error('Something went wrong');
  })
  .then((responseJson) => {
    // Handle the data
  })
  .catch((error) => {
    // Handle the error
  });
登入後複製

此程式碼片段驗證回應狀態(response.ok)。如果不正常,它會拋出一個錯誤,觸發 Promise#catch() 處理程序。這使您可以根據 HTTP 狀態代碼優雅地處理錯誤。

以上是如何優雅地處理基於 HTTP 狀態碼的取得錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板