Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich ein Abrufversprechen ablehnen und Fehler abfangen, wenn der Statuscode nicht in Ordnung ist?

DDD
Freigeben: 2024-11-24 08:00:12
Original
833 Leute haben es durchsucht

How to Reject a Fetch Promise and Catch Errors When the Status Code is Not OK?

Wie lehne ich ein Fetch-Versprechen ab und erkenne den Fehler, wenn der Status nicht OK ist?

Viele moderne JavaScript-Anwendungen verwenden die Fetch-API, um HTTP-Anfragen zu stellen. Die Fetch-API gibt ein Promise-Objekt zurück, das in ein Response-Objekt aufgelöst wird. Das Response-Objekt kann verwendet werden, um auf den Statuscode, die Header und den Text der Antwort zuzugreifen.

Manchmal antwortet ein Server mit einem HTTP-Statuscode, der auf einen Fehler hinweist. Beispielsweise könnte ein Server mit dem Statuscode 404 antworten, wenn eine angeforderte Ressource nicht gefunden wird. Standardmäßig wird ein Abrufversprechen nicht abgelehnt, wenn der Server mit einem Nicht-2xx-Statuscode antwortet.

Dies kann die Behandlung von Fehlern in Ihrem Code erschweren. Um dieses Problem zu beheben, können Sie die Funktion status() verwenden, um den Statuscode des Antwortobjekts zu überprüfen, bevor Sie das Versprechen auflösen oder ablehnen. Hier ist ein Beispiel, wie Sie die Funktion status() verwenden können, um ein Fetch Promise abzulehnen, wenn der Statuscode nicht OK ist:

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;
}
Nach dem Login kopieren

Dieser Code lehnt das Fetch Promise ab, wenn der Statuscode des Antwortobjekts ist nicht in Ordnung. Sie können dann die Methode .catch() verwenden, um den Fehler zu behandeln.

Hier ist ein Beispiel, wie Sie die Methode .catch() verwenden können, um den Fehler zu behandeln:

fetchVehicle(1).catch(error => {
    console.log(error);
});
Nach dem Login kopieren

Dies Der Code protokolliert den Fehler in der Konsole.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Abrufversprechen ablehnen und Fehler abfangen, wenn der Statuscode nicht in Ordnung ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage