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!