Maison > interface Web > js tutoriel > Faut-il attendre les chaînes de promesses ?

Faut-il attendre les chaînes de promesses ?

DDD
Libérer: 2024-11-25 13:32:11
original
524 Les gens l'ont consulté

Should You Await Promise Chains?

Attente de chaînes de promesses : pièges potentiels

Il a été déconseillé d'attendre des chaînes de promesses dans certains contextes, en particulier dans les applications Angular 6. Cette approche apparemment redondante soulève des questions sur ses conséquences potentielles.

Le problème du chaînage de promesses

L'extrait de code suivant illustre l'anti-modèle en question :

await someFunction().then(result => {
    console.log(result);
});
Copier après la connexion

Ce code enveloppe inutilement la promesse renvoyée par someFunction() dans une chaîne Promise.then avant d'attendre

Solution alternative

Une approche plus concise et plus simple consiste simplement à attendre directement la promesse :

const result = await someFunction();
console.log(result);
Copier après la connexion

Pourquoi éviter Promise Chaining ?

Bien que les deux extraits aboutissent au même résultat, le premier invite à la confusion et au potentiel bugs :

  • Clarté réduite : Mélanger des promesses d'attente et des promesses enchaînées peut nuire à la lisibilité.
  • Gestion des erreurs incohérentes : On ne sait pas comment gérer erreurs dans le premier extrait.
  • Contrôle limité Flux : Les retours conditionnels ou les appels de promesse supplémentaires dans le rappel chaîné peuvent introduire une ambiguïté et compliquer la logique du code.

La cohérence est la clé

Pour le Par souci de cohérence et d’évitement des pièges potentiels, il est conseillé de préférer l’approche la plus simple consistant à attendre directement les promesses. Cela correspond à la règle générale consistant à préférer wait à then dans les fonctions asynchrones.

Exception à la règle

Bien que wait soit généralement préférable, il peut y avoir des exceptions. Dans certains cas de gestion d'erreurs, le chaînage de promesses peut fournir une approche plus propre et plus concise.

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