⊗jsSpPrmAr 170 of 294 menu

Promise massiivide töötamine JavaScriptis

Praegu analüüsime kahte kasulikku meetodit, mis võimaldavad töötada promise massiividega. Meetod Promise.all võimaldab käivitada koodi pärast kõigi talle massiivina edastatud promise'ide lõppemist, meetod Promise.race oodab aga massivist esimese promise'i laadimist, jättes ülejäänud kõrvale.

Mõlemad meetodid tagastavad oma tulemusena uue promise'i. Meetodi Promise.all puhul on selle promise'i tulemuseks kõigi edastatud promise'ide tulemuste massiiv (tulemuste järjekord vastab promise'ide järjekorrale massiivis), Promise.race puhul aga esimesena käivituva promise'i tulemus.

Vaatame praktikas. Olgu meil promise'ide massiiv:

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

Kasutame Promise.all, et oodata kõigi meie massiivi promise'ide laadimise lõppemist:

Promise.all(promises).then(function(res) { console.log(res); // väljastab [1, 2, 3] - kõigi promise'ide tulemused });

Ja nüüd kasutame Promise.race, et oodata esimese promise'i laadimise lõppemist:

Promise.race(promises).then(function(res) { console.log(res); // väljastab 1 - esimesena täidetud promise'i tulemus });

Kui vähemalt üks promise massiivist läheb tagasi lükatud olekusse, siis promise tulemusega läheb kohe olekusse rejected. Seetõttu tekkinud erandi saab püüda tavalisel, juba teie poolt õpitud viisil, näiteks läbi catch:

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

Tehke funktsioon, mis tagastab promise'i, mille sees on seatud juhuslik viivitus 1 kuni 10 sekundi vahel. Olgu promise'i tulemuseks see viivitus. Kasutades tsüklit ja teie funktsiooni, täitke massiiv 10 promise'iga.

Kasutades eelmise ülesande promise'ide massiivi tehke nii, et konsooli väljastatakse esimesena käivituva promise'i tulemus.

Kasutades eelmise ülesande promise'ide massiivi tehke nii, et konsooli väljastatakse kõigi promise'ide tulemuste summa.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu