Junior
Promise.race nədir və JavaScript-də necə istifadə olunur açıqlayın.
sobes.tech Süni İntellekt
AI-dan cavab
Promise.race bir iterable obyekt promiss qəbul edir və yeni bir promiss qaytarır. Bu yeni promiss, iterable obyektindəki ilk promiss həll olunduğu və ya rədd olunduğu zaman həll olunur və ya rədd edilir. Yeni promissin nəticəsi, ilk tamamlanan promissin nəticəsi və ya rədd edilmə səbəbi olacaq.
İstifadə sahələri:
- Bir neçə asinxron əməliyyatdan ən sürətli cavabı seçmək.
- Asinxron əməliyyatlar üçün zaman aşımı tətbiq etmək.
Zaman aşımı nümunəsi:
// Müəyyən bir vaxt sonra rədd olunan promiss yaradan funksiya
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error(`Timeout after ${ms}ms`));
}, ms);
});
}
// Yavaş ola biləcək asinxron əməliyyat
function fetchData() {
return new Promise(resolve => {
// Uzun müddətli əməliyyatın simulyasiyası
setTimeout(() => {
resolve('Məlumat uğurla alındı');
}, 2000); // Tutaq ki, bu əməliyyat 2 saniyə çəkir
});
}
// fetchData-ya zaman aşımı əlavə etmək üçün Promise.race istifadə olunur
Promise.race([
fetchData(), // Əməliyyatımız
timeout(1000) // 1 saniyəlik zaman aşımı
])
.then(result => {
console.log(result); // Yoxlamaq üçün fetchData, zaman aşımından əvvəl tamamlanarsa işləyəcək
})
.catch(error => {
console.error(error.message); // Əgər zaman aşımı ilk baş tutarsa işləyəcək
});