⊗jsSpPrmAr 170 of 294 menu

Promise tömbök kezelése JavaScriptben

Most két hasznos módszert fogunk megvizsgálni, amelyek lehetővé teszik promise tömbökkel való munkát. A Promise.all módszer lehetővé teszi a kód végrehajtását az összes, tömb formájában átadott promise befejezése után, míg a Promise.race módszer megvárja a tömbből az első promise betöltését, és elveti a többit.

Mindkét módszer egy új promise-t ad vissza eredményül. A Promise.all módszer esetén ennek a promise-nak az eredménye az összes átadott promise eredményeinek tömbje lesz (az eredmények sorrendje megfelel a promise-ok tömbbeli sorrendjének), míg a Promise.race esetén - az első lefutott promise eredménye.

Nézzük a gyakorlatban. Tegyük fel, hogy van egy promise tömbünk:

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

Várjuk meg a Promise.all segítségével a tömbünkben lévő összes promise betöltésének befejeződését:

Promise.all(promises).then(function(res) { console.log(res); // kiírja [1, 2, 3] - az összes promise eredménye });

Most pedig a Promise.race segítségével várjuk meg az első promise betöltésének befejeződését:

Promise.race(promises).then(function(res) { console.log(res); // kiírja 1 - az első teljesített promise eredménye });

Ha a tömbben lévő promise-ok közül legalább egy elutasításra kerül, akkor az eredmény promise azonnal rejected állapotba kerül. Ezért a keletkezett kivételt a szokásos, általatok már megismert módon elkaphatjátok, például a catch segítségével:

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

Készítsen egy függvényt, amely promise-t ad vissza, melynek belsejében van egy véletlenszerű késleltetés 1 és 10 másodperc között. Legyen a promise eredménye ez a késleltetés. Ciklus és a függvénye segítségével töltse fel a tömböt 10 promise-szal.

Az előző feladat promise tömbjét felhasználva érje el, hogy a konzolba az első lefutott promise eredménye kerüljön kiírásra.

Az előző feladat promise tömbjét felhasználva érje el, hogy a konzolba az összes promise eredményeinek összege kerüljön kiírásra.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás