Maison > interface Web > js tutoriel > Comment rejeter une promesse de récupération et détecter les erreurs lorsque le code d'état n'est pas OK ?

Comment rejeter une promesse de récupération et détecter les erreurs lorsque le code d'état n'est pas OK ?

DDD
Libérer: 2024-11-24 08:00:12
original
921 Les gens l'ont consulté

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

Comment rejeter une promesse de récupération et détecter l'erreur lorsque l'état n'est pas OK ?

De nombreuses applications JavaScript modernes utilisent l'API Fetch pour effectuer des requêtes HTTP. L'API Fetch renvoie un objet Promise qui se résout en un objet Response. L'objet Response peut être utilisé pour accéder au code d'état, aux en-têtes et au corps de la réponse.

Parfois, un serveur répond avec un code d'état HTTP qui indique une erreur. Par exemple, un serveur peut répondre avec un code d'état 404 si une ressource demandée n'est pas trouvée. Par défaut, une Fetch Promise ne sera pas rejetée lorsque le serveur répond avec un code d'état non-2xx.

Cela peut rendre difficile la gestion des erreurs dans votre code. Pour résoudre ce problème, vous pouvez utiliser la fonction status() pour vérifier le code d'état de l'objet Response avant de résoudre ou de rejeter la promesse. Voici un exemple de la façon dont vous pouvez utiliser la fonction status() pour rejeter une promesse de récupération lorsque le code d'état n'est pas OK :

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;
}
Copier après la connexion

Ce code rejettera la promesse de récupération si le code d'état de l'objet de réponse n'est pas OK. Vous pouvez ensuite utiliser la méthode .catch() pour gérer l'erreur.

Voici un exemple de la façon dont vous pouvez utiliser la méthode .catch() pour gérer l'erreur :

fetchVehicle(1).catch(error => {
    console.log(error);
});
Copier après la connexion

Ceci le code enregistrera l'erreur sur la console.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal