Maison > interface Web > js tutoriel > L'utilisation de async/await dans un constructeur de promesse est-elle un anti-modèle ?

L'utilisation de async/await dans un constructeur de promesse est-elle un anti-modèle ?

Mary-Kate Olsen
Libérer: 2024-12-16 17:41:11
original
374 Les gens l'ont consulté

Is Using async/await Inside a Promise Constructor an Anti-Pattern?

Utiliser async/await dans un constructeur Promise() : un anti-modèle ?

Dans ce scénario, vous utilisez un async Fonction .eachLimit pour gérer les opérations simultanées. Cependant, votre utilisation de async/await dans la fonction du constructeur Promise soulève des inquiétudes.

Anti-Pattern du constructeur de promesse

Utiliser des promesses dans la fonction d'exécution du constructeur de promesse, car vous que vous faites, est considéré comme un anti-modèle. Le principal risque, comme l'illustre votre code, est la possibilité que des erreurs passent sans être contrôlées.

De plus, async/await introduit une complexité supplémentaire, obscurcissant potentiellement ces problèmes. Par exemple, dans votre code :

let p = new Promise(resolve => {
  ""(); // TypeError
  resolve();
});

(async () => {
  await p;
})().catch(e => console.log("Caught: " + e)); // Catches it.
Copier après la connexion

Ici, la TypeError passe inaperçue dans le constructeur de promesse, mais elle est interceptée lors de l'utilisation de async/await. De telles surprises peuvent être problématiques.

Par conséquent, même si votre code vous permet d'accéder aux valeurs dans les rappels imbriqués, il est essentiel de gérer les erreurs avec soin et d'éviter ces anti-modèles pour garantir un code robuste et maintenable.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal