Dans une chaîne de promesses, la résolution d'une promesse dépend de la façon dont ses fonctions de gestionnaire d'erreurs répondent à un rejet. La méthode .then() renvoie une nouvelle promesse pour le résultat de la fonction de rappel. Si aucun gestionnaire de succès ou d'erreur n'est fourni, le résultat sera transmis directement à la promesse suivante.
Si l'erreur est gérée, la promesse résultante se réalisera avec la valeur renvoyée par le gestionnaire d'erreurs. Pour renvoyer l'erreur et la propager dans la chaîne, lancez err à la place.
Dans l'exemple de la boutique de widgets, lorsqu'une promesse de la chaîne reçoit une erreur, elle doit la lancer pour garantir que les promesses suivantes dans la chaîne ne reçoit pas de valeur de réussite.
Dans une chaîne de requêtes de base de données, si une erreur se produit dans la première requête, l'omission du gestionnaire d'erreur permettra à la chaîne de continuer, même si les promesses suivantes peut ne pas recevoir de valeurs significatives.
db.query({ parent_id: value }).then(function(query_result) { return db.put({ parent_id: query_result[0].parent_id }); }).then(function(first_value_result) { return db.put({ reference_to_first_value_id: first_value_result.id }); }.then(values_successfully_entered);
En résumé, pour empêcher les promesses ultérieures d'une chaîne de recevoir des valeurs de réussite après un rejet, la fonction de gestionnaire d'erreurs doit soit générer l'erreur, soit renvoyer une promesse rejetée.
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!