⊗jsSpPrmAr 170 of 294 menu

JavaScriptda massiv promislari bilan ishlash

Hozir biz massiv promislari bilan ishlashga imkon beradigan ikkita foydali metodni ko'rib chiqamiz. Promise.all metodi unga massiv shaklida uzatilgan barcha promislar tugagandan so'ng kodni bajarishga imkon beradi, Promise.race metodi esa massivdagi birinchi promis yuklanishini kutadi, qolganlarini esa rad etadi.

Ikkala metoda ham o'z natijasi sifatida yangi promisni qaytaradi. Promise.all metodi uchun ushbu promisning natijasi barcha uzatilgan promislar natijalarining massivi bo'ladi (natijalar tartibi massivdagi promislar tartibiga mos keladi), Promise.race uchun esa - birinchi ishtirok etgan promisning natijasi.

Keling, amalda ko'ramiz. Faraz qilaylik, bizda promislar massivi mavjud:

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

Keling, Promise.all yordamida massivimizdagi barcha promislarning yuklanishi tugashini kutaylik:

Promise.all(promises).then(function(res) { console.log(res); // [1, 2, 3] - barcha promislarning natijalarini chiqaradi });

Endi esa Promise.race yordamida birinchi promisning yuklanishi tugashini kutaylik:

Promise.race(promises).then(function(res) { console.log(res); // 1 - bajarilgan birinchi promisning natijasini chiqaradi });

Agar massivdagi promislardan bittasi ham rad etilsa, natija promisi darhol rejected holatiga o'tadi. Shuning uchun yuzaga kelgan istisnoni siz allaqachon o'rgangan oddiy usul bilan ushlab qolishingiz mumkin, masalan, catch orqali:

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

Ichida 1 dan 10 soniyagacha tasodifiy kechikish o'rnatilgan promisni qaytaradigan funktsiya yarating. Promis o'z natijasi sifatida ushbu kechikishni qaytarsin. Tsikl va sizning funktsiyangiz yordamida massivni 10 ta promis bilan to'ldiring.

Oldingi vazifadagi promislar massividan foydalanib, bajarilgan birinchi promisning natijasi konsolga chiqarilishini ta'minlang.

Oldingi vazifadagi promislar massividan foydalanib, barcha promislar natijalari yig'indisi konsolga chiqarilishini ta'minlang.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish