Junior
Promise.race nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Promise.race — yeni bir promise döndüren bir yöntemdir. Bu yeni promise, iletilen yineleyici nesnesindeki (genellikle dizi) ilk tamamlanan promise ile aynı değerle (veya neden) çözülür veya reddedilir.
Çalışma prensipleri:
- Giriş: Bir yineleyici nesne (örneğin, bir dizi) promise kabul eder.
- Bekleme: Tüm promise'lar arasında "yarışma" başlatır.
- Sonuç: Yineleyici nesnesindeki herhangi biri tamamlandığında (çözülmüş veya reddedilmiş),
Promise.raceanında aynı sonuçla sona erer. - Yoksayma: Daha sonra tamamlanan diğer promise'ların sonuçları tamamen yoksayılır.
Kullanım örneği:
// 1 saniye sonra çözülen bir promise örneği
const promise1 = new Promise((resolve) => setTimeout(() => resolve('Birinci'), 1000));
// 500 milisaniye sonra çözülen bir promise örneği
const promise2 = new Promise((resolve) => setTimeout(() => resolve('İkinci'), 500));
// 300 milisaniye sonra reddedilen bir promise örneği
const promise3 = new Promise((_, reject) => setTimeout(() => reject(new Error('Hata')), 300));
Promise.race([promise1, promise2, promise3])
.then((value) => {
console.log(value); // 'Hata' yazdırır
})
.catch((error) => {
console.error(error.message); // Hata'yı işler
});
Bu örnekte, promise3 ilk tamamlanır (reddedilir), bu nedenle Promise.race bir hata ile sona erer ve .catch bloğu çalışır. Eğer promise2 ilk tamamlanmış olsaydı (örneğin, 10 ms'de), Promise.race 'İkinci' değeriyle çözülürdü ve .then bloğu çalışırdı.
Tipik kullanım senaryoları:
- Asenkron bir işlem için zaman aşımı uygulaması.
- Birden fazla olası kaynaktan en hızlı sonucu alma.
- Rekabet eden asenkron işlemleri iptal etme.