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.
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!