⊗jsSpPrmAr 170 of 294 menu

Werken met arrays van promises in JavaScript

Nu analyseren we twee nuttige methoden, die het mogelijk maken om met arrays van promises te werken. De methode Promise.all maakt het mogelijk om code uit te voeren nadat alle promises, die aan hem zijn doorgegeven in de vorm van een array, zijn voltooid. De methode Promise.race wacht op de voltooiing van de eerste promise uit de array, en negeert de rest.

Beide methoden retourneren een nieuwe promise als hun resultaat. Voor de methode Promise.all zal het resultaat van deze promise een array zijn met de resultaten van alle doorgegeven promises (de volgorde van de resultaten komt overeen met de volgorde van de promises in de array), en voor Promise.race - het resultaat van de eerste voltooide promise.

Laten we het in de praktijk bekijken. Stel we hebben een array van promises:

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

Laten we met Promise.all wachten op de voltooiing van alle promises in onze array:

Promise.all(promises).then(function(res) { console.log(res); // geeft [1, 2, 3] weer - de resultaten van alle promises });

En laten we nu met Promise.race wachten op de voltooiing van de eerste van de promises:

Promise.race(promises).then(function(res) { console.log(res); // geeft 1 weer - het resultaat van de eerste voltooide promise });

Als ten minste één van de promises in de array wordt afgewezen, zal de promise met het resultaat onmiddellijk overgaan naar de status rejected. Daarom kan de opgetreden uitzondering worden opgevangen op de gebruikelijke, reeds door jou bestudeerde manier, bijvoorbeeld via catch:

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

Maak een functie die een promise retourneert, waarin een willekeurige vertraging is ingesteld van 1 tot 10 seconden. Laat de promise deze vertraging als resultaat retourneren. Gebruik een lus en je functie om de array te vullen met 10 promises.

Gebruik de array van promises uit de vorige opdracht en zorg ervoor dat het resultaat van de eerste voltooide promise in de console wordt weergegeven.

Gebruik de array van promises uit de vorige opdracht en zorg ervoor dat de som van de resultaten van alle promises in de console wordt weergegeven.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren