En JavaScript, attendre plusieurs fonctions asynchrones peut donner l'impression qu'elles s'exécutent séquentiellement plutôt que simultanément. Cela soulève la question : comment pouvons-nous réaliser une exécution parallèle de ces fonctions ?
Pour exécuter des fonctions asynchrones en parallèle, vous pouvez utiliser Promise.all( ) fonction. Il prend un tableau de promesses comme argument et renvoie une seule promesse qui se résout lorsque toutes les promesses du tableau sont résolues.
await Promise.all([someCall(), anotherCall()]);
Dans ce code, someCall() et anotherCall() sont appelés simultanément, et le script ne se poursuit que lorsque les deux fonctions ont fini de s'exécuter.
Si vous souhaitez accéder aux résultats de l'async parallèle appels, vous pouvez déstructurer le tableau renvoyé par Promise.all() :
let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);
Il est important de noter que Promise.all() suit un "fail -approche "rapide". Si l'une des promesses du tableau est rejetée, la promesse entière Promise.all() sera rejetée avec l'erreur de la première promesse échouée :
// If any of the promises fails, it will reject Promise.all([happy('happy', 100), sad('sad', 50)]).then(console.log).catch(console.log);
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!