⊗jsSpPrmAr 170 of 294 menu

JavaScript'te Promise Dizileriyle Çalışma

Şimdi, promise dizileriyle çalışmanıza izin veren iki kullanışlı metodu inceleyeceğiz. Promise.all metodu, kendisine bir dizi olarak iletilen tüm promise'ler tamamlandığında kodu çalıştırmanıza izin verir, Promise.race metodu ise dizideki ilk promise'in tamamlanmasını bekler ve diğerlerini atlar.

Her iki metod da sonuç olarak yeni bir promise döndürür. Promise.all metodu için bu promise'in sonucu, iletilen tüm promise'lerin sonuçlarının bir dizisi olacaktır (sonuçların sırası, dizideki promise'lerin sırasına karşılık gelir), Promise.race için ise - ilk tamamlanan promise'in sonucu olacaktır.

Pratikte görelim. Bir promise dizimiz olduğunu varsayalım:

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 kullanarak dizimizdeki tüm promise'lerin yüklenmesinin tamamlanmasını bekleyelim:

Promise.all(promises).then(function(res) { console.log(res); // [1, 2, 3] - tüm promise'lerin sonuçlarını verecek });

Şimdi de Promise.race kullanarak promise'lerden ilkinin yüklenmesinin tamamlanmasını bekleyelim:

Promise.race(promises).then(function(res) { console.log(res); // 1 - ilk tamamlanan promise'in sonucunu verecek });

Dizideki promise'lerden en az biri reddedilirse, sonuç promise'i hemen rejected durumuna geçecektir. Bu nedenle oluşan istisna, normal, zaten öğrenmiş olduğunuz bir yolla, örneğin catch ile yakalanabilir:

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

İçinde 1 ile 10 saniye arasında rastgele bir gecikme ayarlanmış bir promise döndüren bir fonksiyon yapın. Promise, sonuç olarak bu gecikmeyi döndürsün. Döngü ve fonksiyonunuzu kullanarak diziyi 10 promise ile doldurun.

Önceki görevdeki promise dizisini kullanarak, konsola ilk çalışan promise'in sonucunun yazdırılmasını sağlayın.

Önceki görevdeki promise dizisini kullanarak, konsola tüm promise'lerin sonuçlarının toplamının yazdırılmasını sağlayın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet