Heim >Web-Frontend >js-Tutorial >Wie können Sie Abruffehler basierend auf HTTP-Statuscodes ordnungsgemäß behandeln?

Wie können Sie Abruffehler basierend auf HTTP-Statuscodes ordnungsgemäß behandeln?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 02:13:02625Durchsuche

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

Abruffehler mit Antwortstatus erfassen

Sie nutzen die fetch()-API mit Redux und der Redux-Promise-Middleware-Bibliothek. In Ihrem Codeausschnitt versuchen Sie, den Antwortstatus zu überprüfen und etwaige Fehler zu beheben. Sie stoßen jedoch auf ein Problem, bei dem das Versprechen nicht abgelehnt wird.

Grundlegendes zu Ablehnungen von Abrufversprechen

Abrufversprechen sind insofern einzigartig, als sie nur aufgrund von abgelehnt werden Netzwerkfehler. Antworten mit Statuscodes wie 4xx (Clientfehler) und 5xx (Serverfehler) gelten als Nicht-Netzwerkfehler. Folglich lösen sie keine Ablehnung aus.

Problem lösen

Um diese Einschränkung zu überwinden und statusbezogene Fehler zu behandeln, müssen Sie manuell einen Fehler auslösen:

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
  });

Dieses Code-Snippet überprüft den Antwortstatus (response.ok). Wenn es nicht in Ordnung ist, wird ein Fehler ausgegeben, der den Promise#catch()-Handler auslöst. Dadurch können Sie Fehler basierend auf HTTP-Statuscodes elegant behandeln.

Das obige ist der detaillierte Inhalt vonWie können Sie Abruffehler basierend auf HTTP-Statuscodes ordnungsgemäß behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn