Mövzunu Açan
#0
JavaScript'te asenkron programlamayı kolaylaştıran yapılar arasında bulunan
Kullanım Şekli
Bu örnekte,
AggregateError
Eğer verilen tüm Promise nesneleri reddedilirse,
Sonuç
Promise.any, birden fazla Promise nesnesini aynı anda çalıştırarak en az birinin başarılı bir şekilde sonuçlanmasını bekler. Bu yapı, özellikle birden fazla kaynaktan veri almak istediğimiz durumlarda oldukça faydalıdır. Promise.any, tüm verilen Promise nesneleri reddedildiğinde bir AggregateError hatası fırlatır.Kullanım Şekli
Promise.any, bir dizi Promise alır ve en az birinin başarıyla sonuçlanmasını bekler. Aşağıda basit bir örnekle kullanımını açıklayalım:CODE
1234567891011const promise1 = Promise.reject('Hata: 1');
const promise2 = new Promise((resolve, reject) => setTimeout(resolve, 100, 'Başarılı: 2'));
const promise3 = new Promise((resolve, reject) => setTimeout(resolve, 200, 'Başarılı: 3'));
Promise.any([promise1, promise2, promise3])
.then(result => {
console.log(result); // 'Başarılı: 2'
})
.catch(error => {
console.error(error);
});Bu örnekte,
promise1 reddedildiği için dikkate alınmaz. promise2 ve promise3 ise belirli bir süre sonra başarıyla sonuçlanır. Promise.any, promise2'nin başarılı sonucunu döndürür.AggregateError
Eğer verilen tüm Promise nesneleri reddedilirse,
Promise.any bir AggregateError hatası fırlatır. Bu hata, reddedilen tüm Promise'lerin neden olduğu hataları içeren bir dizi barındırır. İşte bu durumu ele alan bir örnek:CODE
12345678910const promiseA = Promise.reject('Hata: A');
const promiseB = Promise.reject('Hata: B');
Promise.any([promiseA, promiseB])
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error.errors); // ['Hata: A', 'Hata: B']
});Sonuç
Promise.any, asenkron işlemler arasında esneklik sağlayarak en az birinin başarılı sonuç vermesini beklememizi mümkün kılar. Geliştiricilerin daha verimli bir şekilde hata yönetimi yapmalarına yardımcı olur. Bu özellik, özellikle dış API çağrıları gibi belirsiz sonuçlar doğurabilecek senaryolarda oldukça kullanışlıdır.