Junior
Promise.race nedir ve JavaScript'te nasıl kullanılır açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Promise.race bir iterable nesne alır ve yeni bir promise döner. Bu yeni promise, iterable içindeki ilk promise çözülür veya reddedilir reddedilir. Yeni promise'in sonucu, ilk tamamlanan promise'in sonucu veya reddedilme nedenidir.
Kullanım alanları:
- Birden fazla asenkron işlemin en hızlı yanıtını seçmek.
- Asenkron işlemler için zaman aşımı uygulamak.
Zaman aşımı örneği:
// Belirli bir süre sonra reddeden bir promise oluşturan fonksiyon
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error(`Timeout after ${ms}ms`));
}, ms);
});
}
// Yavaş olabilecek asenkron işlem
function fetchData() {
return new Promise(resolve => {
// Uzun süren bir işlemin simülasyonu
setTimeout(() => {
resolve('Veri başarıyla alındı');
}, 2000); // Diyelim ki bu işlem 2 saniye sürüyor
});
}
// fetchData'ya zaman aşımı eklemek için Promise.race kullanımı
Promise.race([
fetchData(), // İşlemimiz
timeout(1000) // 1 saniyelik zaman aşımı
])
.then(result => {
console.log(result); // fetchData, zaman aşımından önce tamamlanırsa çalışır
})
.catch(error => {
console.error(error.message); // Zaman aşımı ilk gerçekleşirse çalışır
});