Maison >interface Web >js tutoriel >Pourquoi l'attente d'une chaîne de promesses dans Angular 6 est-elle un anti-modèle ?

Pourquoi l'attente d'une chaîne de promesses dans Angular 6 est-elle un anti-modèle ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-21 03:39:12646parcourir

Why Is Awaiting a Promise Chain in Angular 6 an Anti-Pattern?

Les périls d'attendre une chaîne de promesses

Dans Angular 6, il est considéré comme un anti-modèle d'attendre une chaîne de promesses, comme en témoigne le code suivant :

await someFunction().then(result => {
    console.log(result);
});

Bien que cette approche puisse sembler anodine, elle peut introduire des bugs subtils et réduire maintenabilité.

Comprendre le problème

Ordinairement, attendre une chaîne de promesses est redondant car someFunction(), si elle renvoie une promesse, attend déjà sa résolution. Par conséquent, le code simplifié ci-dessous obtient le même résultat :

const result = await someFunction();
console.log(result);

Dangers potentiels

Cependant, attendre une chaîne de promesses peut entraîner des conséquences inattendues :

  • Styles mixtes : Mélanger wait avec then est déroutant et difficile à maintenir.
  • Contrôle de flux : L'ajout d'appels de promesses ou de conditions supplémentaires dans le rappel then devient plus complexe, introduisant un risque d'erreurs.
  • Cohérence asynchrone : Les fonctions asynchrones doivent systématiquement utiliser wait pour le contrôle de flux, évitant ainsi d'avoir besoin de then rappels.

Recommandation

Pour améliorer la clarté du code et éviter les problèmes potentiels, il est conseillé de respecter les directives suivantes :

  • Préférer une syntaxe concise : Utilisez wait directement pour les promesses en attente, en évitant les promesses inutiles chaînage.
  • Gérer les erreurs Utilisez le chaînage de promesses (then et catch) uniquement pour la gestion des erreurs lorsque cela est nécessaire.
  • Maintenir la cohérence : S'en tenir à attendre contrôle de flux au sein des fonctions asynchrones pour améliorer la lisibilité et la maintenabilité.

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!

Déclaration:
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