v2.5.2
Giriş yap

JavaScript Fetch AbortSignal.timeout()

JavaScript'de istekleri yönetmek için fetch metodunu kullanıyoruz.

En basit örneğiyle bir GET isteğini şöyle yapabiliriz:

fetch('https://httpbin.org/delay/3')
    .then(res => res.json())
    .then(res => console.log('res', res))
    .catch(err => console.error(err))

fetch bir promise döndürdüğü için veriyi yönetmek için then, hatayı yönetmek için catch bloklarını kullanıyoruz

Ancak fetch'in bir eksiği var, o da istek x saniye den daha uzun sürerse bunu durduracak bir timeout opsiyonu yok.

Neyse ki, yakın zamanda gelen AbortSignal.timeout() ile bu problemimiz çözüldü.

Örneğin, isteğin 6 saniyeden daha uzun sürdüğü bir senaryoda isteği iptal edip bunu hata olarak yakalamak istersek şöyle yapabiliyoruz:

fetch('https://httpbin.org/delay/3', {
    signal: AbortSignal.timeout(6000)
})
    .then(res => res.json())
    .then(res => console.log('res', res))
    .catch(err => console.log(err.name))

Eger hata AbortError ise bilinki istek zaman aşımına uğramıştır.

tayfunerbilen
306 gün önce yazdı - 1386 kez görüntülendi.
Önceki JavaScript ile CSS Değişkeni Nasıl Tanımlanır? Sonraki React / React Error Boundary