⊗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हिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어LietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу