⊗jsSpPrmAr 170 of 294 menu

JavaScript-ում պրոմիսների զանգվածների հետ աշխատանք

Այժմ մենք կվերլուծենք երկու օգտակար մեթոդ, որոնք թույլ են տալիս աշխատել պրոմիսների զանգվածների հետ: Promise.all մեթոդը թույլ է տալիս կատարել կոդը բոլոր պրոմիսների ավարտից հետո, որոնք փոխանցվել են նրան զանգվածի տեսքով, իսկ Promise.race մեթոդը սպասում է զանգվածից առաջին պրոմիսի բեռնավորմանը, մերժելով մնացածները:

Երկու մեթոդներն էլ իրենց արդյունքում վերադարձնում են նոր պրոմիս: Promise.all մեթոդի համար այս պրոմիսի արդյունքը կլինի բոլոր փոխանցված պրոմիսների արդյունքների զանգված (արդյունքների հերթականությունը համապատասխանում է պրոմիսների հերթականությանը զանգվածում), իսկ Promise.race-ի համար՝ առաջին աշխատած պրոմիսի արդյունքը:

Եկեք տեսնենք գործնականում: Ենթադրենք, որ մենք ունենք պրոմիսների զանգված:

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

Եկեք օգտագործենք Promise.all-ը՝ սպասելու մեր զանգվածի բոլոր պրոմիսների բեռնավորման ավարտին:

Promise.all(promises).then(function(res) { console.log(res); // կարտածի [1, 2, 3] - բոլոր պրոմիսների արդյունքները });

Իսկ այժմ օգտագործենք Promise.race-ը՝ սպասելու պրոմիսներից առաջինի բեռնավորման ավարտին:

Promise.race(promises).then(function(res) { console.log(res); // կարտածի 1 - առաջին ավարտված պրոմիսի արդյունքը });

Եթե պրոմիսների զանգվածից գոնե մեկը կմերժվի, ապա արդյունքով պրոմիսը անմիջապես կանցնի rejected վիճակի: Ուստի առաջացած բացառությունը կարելի է բռնել սովորական, արդեն ձեր կողմից ուսումնասիրված եղանակով, օրինակ՝ օգտագործելով catch:

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

Ստեղծեք ֆունկցիա, որն վերադարձնում է պրոմիս, որի ներսում սահմանված է պատահական ուշացում 1-ից մինչև 10 վայրկյան: Թող պրոմիսն իր արդյունքում վերադարձնի այդ ուշացումը: Օգտագործելով ցիկլ և ձեր ֆունկցիան՝ լրացրեք զանգվածը 10 պրոմիսներով:

Օգտագործելով նախորդ առաջադրանքի պրոմիսների զանգվածը՝ արեք այնպես, որ կոնսոլում արտածվի առաջին աշխատած պրոմիսի արդյունքը:

Օգտագործելով նախորդ առաջադրանքի պրոմիսների զանգվածը՝ արեք այնպես, որ կոնսոլում արտածվի բոլոր պրոմիսների արդյունքների գումարը:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել