⊗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 файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау