zkrvndm
@zkrvndm
Архитектор решений

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

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

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

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект