@zkrvndm
Софт для автоматизации

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

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

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

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

Войти через центр авторизации
Похожие вопросы