⊗jsSpPrmAr 170 of 294 menu

Travailler avec des tableaux de promesses en JavaScript

Maintenant, nous allons analyser deux méthodes utiles, permettant de travailler avec des tableaux de promesses. La méthode Promise.all permet d'exécuter du code après la fin de toutes les promesses, transmises sous forme de tableau, et la méthode Promise.race attend le chargement de la première promesse du tableau, en rejetant les autres.

Les deux méthodes renvoient comme résultat une nouvelle promesse. Pour la méthode Promise.all, le résultat de cette promesse sera un tableau des résultats de toutes les promesses transmises (l'ordre des résultats correspond à l'ordre des promesses dans le tableau), et pour Promise.race - le résultat de la première promesse exécutée.

Voyons cela en pratique. Supposons que nous ayons un tableau de promesses :

let promises = [ new Promise(resolve => setTimeout(() => resolve(1), 1000)), new Promise(resolve => setTimeout(() => resolve(2), 2000)), new Promise(resolve => setTimeout(() => resolve(3), 3000)), ];

Utilisons Promise.all pour attendre la fin du chargement de toutes les promesses de notre tableau :

Promise.all(promises).then(function(res) { console.log(res); // affichera [1, 2, 3] - les résultats de toutes les promesses });

Et maintenant, utilisons Promise.race pour attendre la fin du chargement de la première des promesses :

Promise.race(promises).then(function(res) { console.log(res); // affichera 1 - le résultat de la première promesse exécutée });

Si au moins une des promesses dans le tableau est rejetée, alors la promesse avec le résultat passera immédiatement à l'état rejected. Par conséquent, l'exception survenue peut être attrapée de la manière habituelle, que vous avez déjà étudiée, par exemple, via catch :

Promise.all(promises).then(function(res) { console.log(res); }).catch(function(err) { console.log(err); });

Créez une fonction renvoyant une promesse, à l'intérieur de laquelle est définie un délai aléatoire de 1 à 10 secondes. Que la promesse renvoie ce délai comme résultat. À l'aide d'une boucle et de votre fonction, remplissez un tableau avec 10 promesses.

En utilisant le tableau de promesses de la tâche précédente, faites en sorte que le résultat de la première promesse exécutée s'affiche dans la console.

En utilisant le tableau de promesses de la tâche précédente, faites en sorte que la somme des résultats de toutes les promesses s'affiche dans la console.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser