Promise.all : Ordre des valeurs résolues
En JavaScript, Promise.all est conçu pour améliorer la fonctionnalité des promesses en permettant la résolution de plusieurs promesses simultanément. Un aspect clé de Promise.all est l'ordre dans lequel les valeurs résolues sont transmises à son rappel.
Selon la documentation MDN, l'ordre des valeurs résolues doit correspondre à l'ordre des promesses dans le tableau d'entrée. Cela signifie que la première promesse à résoudre verra sa valeur placée en premier dans le tableau de résultats transmis au rappel then().
Pour confirmer cela, examinons la spécification JavaScript Promise. Dans la section « Promise.all (iterable) », nous trouvons les étapes permettant de résoudre un itérable de promesses en une seule promesse. Le détail crucial réside dans l'étape 4e, qui consiste à créer un emplacement interne [[Index]] pour chaque promesse résolue. Cet emplacement marque explicitement l'index de la promesse dans le tableau d'entrée d'origine.
Par conséquent, l'implémentation Promise.all garantit que lors de la résolution simultanée de plusieurs promesses, la sortie est strictement ordonnée en fonction de l'ordre des promesses dans l'entrée. tableau. Cette préservation de l'ordre est vraie tant que le tableau d'entrée conserve un ordre cohérent (par exemple, un tableau).
Pour illustrer cela, considérons le code suivant :
<code class="js">const somePromises = [1, 2, 3, 4, 5].map(Promise.resolve); Promise.all(somePromises).then(function(results) { console.log(results); // Expected result: [1, 2, 3, 4, 5] });</code>
Lorsque ce code est exécuté, les valeurs résolues seront enregistrées sur la console dans l'ordre des promesses dans le tableau somePromises. Cela démontre la fonctionnalité de préservation des commandes de Promise.all.
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!