⊗jsSpPrmAr 170 of 294 menu

Arbeta med arrayer av promiser i JavaScript

Nu ska vi gå igenom två användbara metoder som låter dig arbeta med arrayer av promiser. Metoden Promise.all låter dig köra kod när alla promiser som skickats till den i form av en array är klara, medan metoden Promise.race väntar på att den första promisen i arrayen ska laddas klart, och ignorerar resten.

Båda metoderna returnerar en ny promise som sitt resultat. För metoden Promise.all blir resultatet av denna promise en array med resultaten från alla skickade promiser (ordningen på resultaten motsvarar ordningen på promiserna i arrayen), medan för Promise.race blir det resultatet från den första avslutade promisen.

Låt oss se på ett praktiskt exempel. Antag att vi har en array med promiser:

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

Låt oss använda Promise.all för att vänta tills alla promiser i vår array har laddats klart:

Promise.all(promises).then(function(res) { console.log(res); // kommer att skriva ut [1, 2, 3] - resultaten från alla promiser });

Och låt oss nu använda Promise.race för att vänta tills den första av promiserna har laddats klart:

Promise.race(promises).then(function(res) { console.log(res); // kommer att skriva ut 1 - resultatet från den första avslutade promisen });

Om minst en av promiserna i arrayen avvisas, kommer promisen med resultatet omedelbart att övergå till tillståndet rejected. Därför kan det uppkomna undantaget fångas på ett vanligt, redan av dig studerat sätt, till exempel via catch:

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

Skapa en funktion som returnerar en promise, inuti vars en slumpmässig fördröjning från 1 till 10 sekunder är inställd. Låt promisen returnera denna fördröjning som sitt resultat. Med hjälp av en loop och din funktion, fyll arrayen med 10 promiser.

Använd arrayen med promiser från den föregående uppgiften och gör så att resultatet från den första avslutade promisen skrivs ut i konsolen.

Använd arrayen med promiser från den föregående uppgiften och gör så att summan av resultaten från alla promiser skrivs ut i konsolen.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa