@rusrich

Как заставить fetch js делать несколько попыток запросов при получении ошибки?

Добрый вечер.

Подскажите, пожалуйста, как с помощью fetch делать вторую попытку запроса при получении ошибки.
Хотелось бы, конечно, раза три попытаться достучаться до сервера, а уже после вернуть ошибку, если этого не произошло.

Есть ли какой-то специальный синтаксис или только с помощью IF?

Спасибо.
  • Вопрос задан
  • 877 просмотров
Пригласить эксперта
Ответы на вопрос 3
@dimoff66
Кратко о себе: Я есть
Второй параметр then - функция при ошибке, передаете в нее ссылку на функцию вызова фетча. Приблизительно так

const fetchData = () => {
  fetch(url).then(
   response = > { 
     // код при успешном ответе
   }, fetchData)
}

fetchData()
Ответ написан
Комментировать
E1ON
@E1ON Куратор тега JavaScript
Programming, Gamedev, VR
try {
  request();
} catch(e) {
  request();
}
Ответ написан
Комментировать
Seasle
@Seasle Куратор тега JavaScript
const getMethod = (url, repeatCount = 1) => fetch(url)
    .then(response => {
        if (!response.ok) {
            return repeatCount > 1
                ? get(url, repeatCount - 1)
                : Promise.reject(response);
        }

        return response;
    })
    .then(response => response.json());
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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