Задать вопрос
zkrvndm
@zkrvndm
Архитектор решений

Возможно ли задать timeout для fetch?

Возникла необходимость ограничить длительность запроса отправляемого через fetch. Как я понял, он не поддерживает такую возможность и вероятно мне придется переписывать все на XMLHttpRequest. Однако, перед тем, как переписать код, я все же переспрошу здесь - может все же есть какие-то способы ограничить длительность fetch-запроса?
  • Вопрос задан
  • 1746 просмотров
Подписаться 3 Средний 3 комментария
Решения вопроса 1
ruddy22
@ruddy22
Спасение утопающих — дело рук самих утопающих
Самый простой вариант
const get = timeout => url => 
  Promise.race([
    fetch(url),
    new Promise((resolve, reject) =>
      setTimeout(() => reject(new Error('timeout')), timeout)
    )
  ]);

Вариант с AbortController
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
10 янв. 2025, в 14:48
10000 руб./за проект
10 янв. 2025, в 14:05
10000 руб./за проект
10 янв. 2025, в 14:00
10000 руб./за проект