Parallèle ou séquentiel : la nature de Promise.All() dans Node.js
Une question se pose concernant le processus d'exécution de Promise. all() dans Node.js. Gère-t-il les promesses de manière séquentielle ou simultanée ?
Q1 : Traitement séquentiel ou parallèle ?
La documentation laisse place à l'ambiguïté, alors clarifions : Promise.all(iterable) n'exécute pas toutes les promesses séquentiellement comme une chaîne de promesses (par exemple, p1.then(p2).then(p3)...) et ne les exécute pas toutes en parallèle. Il attend plutôt la résolution de plusieurs promesses.
Q2 : Réaliser l'exécution séquentielle
Si Promise.all() manque de capacités séquentielles, existe-t-il une alternative ?
Pour un ensemble de promesses existant, il n'existe aucun moyen natif d'appliquer une exécution séquentielle. Cependant, si vous disposez d'un itérable de fonctions asynchrones, vous pouvez créer une chaîne d'exécution séquentielle en utilisant Array::reduce:
iterable.reduce((p, fn) => p.then(fn), Promise.resolve())
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!