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

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

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

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

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

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