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