⊗jsSpPrmAr 170 of 294 menu

JavaScript-də Promise massivləri ilə işləmək

İndi biz Promise massivləri ilə işləməyə imkan verən iki faydalı metodu nəzərdən keçirəcəyik. Promise.all metodu ona massiv şəklində ötürülən bütün Promise-lər bitdikdən sonra kodu icra etməyə imkan verir, Promise.race metodu isə massivdən ilk yüklənən Promise-i gözləyir, qalanları isə rədd edir.

Hər iki metod öz nəticəsi kimi yeni Promise qaytarır. Promise.all metodu üçün bu Promise-in nəticəsi bütün ötürülən Promise-lərin nəticələrinin massivi olacaq (nəticələrin sırası massivdəki Promise-lərin sırasına uyğun gəlir), Promise.race üçün isə - ilk işləyən Promise-in nəticəsi.

Gəlin praktikada baxaq. Tutaq ki, bizim Promise massivimiz var:

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

Gəlin Promise.all ilə massivimizdəki bütün Promise-lərin yüklənməsinin bitməsini gözləyək:

Promise.all(promises).then(function(res) { console.log(res); // [1, 2, 3] - bütün Promise-lərin nəticələrini çap edəcək });

İndi isə Promise.race ilə Promise-lərdən birincisinin yüklənməsinin bitməsini gözləyək:

Promise.race(promises).then(function(res) { console.log(res); // 1 - ilk icra olunan Promise-in nəticəsini çap edəcək });

Əgər massivdəki Promise-lərdən hər hansı biri rədd edilərsə, nəticə Promise-i dərhal rejected vəziyyətinə keçəcək. Buna görə də yaranan istisnanı adi, artıq öyrəndiyiniz üsulla, məsələn, catch ilə tuta bilərsiniz:

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

İçərisində 1 ilə 10 saniyə arasında təsadüfi gecikmə təyin olunmuş Promise qaytaran funksiya düzəldin. Promise öz nəticəsi kimi bu gecikməni qaytarsın. Döngü və funksiyanızdan istifadə edərək massivi 10 Promise ilə doldurun.

Əvvəlki məsələdən olan Promise massivindən istifadə edərək ilk işləyən Promise-in nəticəsi konsola çıxarılacaq şəkildə edin.

Əvvəlki məsələdən olan Promise massivindən istifadə edərək bütün Promise-lərin nəticələrinin cəmi konsola çıxarılacaq şəkildə edin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et