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

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

Возникла необходимость ограничить длительность запроса отправляемого через fetch. Как я понял, он не поддерживает такую возможность и вероятно мне придется переписывать все на XMLHttpRequest. Однако, перед тем, как переписать код, я все же переспрошу здесь - может все же есть какие-то способы ограничить длительность fetch-запроса?
  • Вопрос задан
  • 1997 просмотров
Подписаться 3 Средний 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
ruddy22
@ruddy22
Спасение утопающих — дело рук самих утопающих
Самый простой вариант
const get = timeout => url => 
  Promise.race([
    fetch(url),
    new Promise((resolve, reject) =>
      setTimeout(() => reject(new Error('timeout')), timeout)
    )
  ]);

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

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

Похожие вопросы