⊗jsSpPrmAr 170 of 294 menu

Arbeid med array av promises i JavaScript

Nå skal vi gå gjennom to nyttige metoder, som lar oss arbeide med array av promises. Metoden Promise.all lar oss kjøre kode etter at alle promises, sendt til den i form av et array, er fullført, mens metoden Promise.race venter på at den første promise i arrayet skal fullføres, og forkaster de andre.

Begge metodene returnerer et nytt promise som sitt resultat. For metoden Promise.all vil resultatet av dette promise være et array med resultatene fra alle de sendte promises (rekkefølgen på resultatene samsvarer med rekkefølgen på promises i arrayet), mens for Promise.race - resultatet fra den første fulførte promise.

La oss se på det i praksis. La oss si at vi har et array med promises:

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

La oss ved hjelp av Promise.all vente på at alle promises i vårt array er fullført:

Promise.all(promises).then(function(res) { console.log(res); // vil skrive ut [1, 2, 3] - resultatene fra alle promises });

Og la oss nå ved hjelp av Promise.race vente på at den første av promises er fullført:

Promise.race(promises).then(function(res) { console.log(res); // vil skrive ut 1 - resultatet fra den første fulfilled promise });

Hvis minst én av promises i arrayet blir avvist, vil promise med resultatet umiddelbart gå til tilstanden rejected. Derfor kan unntaket som oppstår fanges på vanlig måte, som du allerede har lært, for eksempel via catch:

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

Lag en funksjon som returnerer et promise, inni som det er satt en tilfeldig forsinkelse fra 1 til 10 sekunder. La promise returnere denne forsinkelsen som sitt resultat. Ved hjelp av en løkke og din funksjon, fyll arrayet med 10 promises.

Bruk arrayet med promises fra forrige oppgave og gjør slik at resultatet fra den første fulførte promise skrives ut i konsollen.

Bruk arrayet med promises fra forrige oppgave og gjør slik at summen av resultatene fra alle promises skrives ut i konsollen.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis