Exécution d'une opération d'attente simultanée
L'extrait de code en question rencontre un problème lors de l'exécution d'opérations asynchrones :
const value1 = wait getValue1Async();<br>const value2 = wait getValue2Async();<br>
Cette implémentation attend séquentiellement la fin de chaque opération avant de commencer la suivante. Pour permettre l'exécution simultanée, une approche modifiée est requise.
La première solution présentée tente de résoudre ce problème en obtenant les promesses pour chaque opération, puis en les attendant séparément :
<br>const p1 = getValue1Async();<br>const p2 = getValue2Async();<br>const value1 = wait p1;<br>const value2 = wait p2;<br>
Bien que cette méthode exécute les deux opérations en parallèle, elle ne gère pas rejet correctement si les deux promesses sont rejetées. Il attend également la fin de la première opération avant de démarrer la seconde, ce qui est inefficace.
Pour résoudre ces problèmes, la fonction Promise.all peut être utilisée :
<br>const [value1, value2] = wait Promise.all([getValue1Async(), getValue2Async()]);<br>
Promise.all prend un tableau de promesses et renvoie une seule promesse qui se résout lorsque toutes les promesses d'entrée ont été résolues ou rejetées. Cette approche offre plusieurs avantages :
En résumé, pour effectuer des opérations asynchrones simultanées avec gestion appropriée des rejets, utilisez Promise.all :
<br>const [value1, value2] = wait Promise.all([getValue1Async(), getValue2Async()]);<br>
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!