Как выполнить запрос н-раз?

Всём привет. Что-то не сообразить как реализовать: выполнить 1 запрос, подождать 5с, повторить запрос, подождать и так 5 раз. Через setinterval фигня получается, а через for слишком быстро. Может есть готовое решение? Спасибо
  • Вопрос задан
  • 110 просмотров
Решения вопроса 2
Enokin
@Enokin
Full-stack разработчик
Через setTimeout и нужно делать

let counter = 0;

const doRequest = () => {
  // Увеличиваем счетчик
  counter++;

  // Выполняем запрос
  fetch('https://your-request-url.ru')
    .then(response => response.json())
    .then(data => {
      console.log(data);

      // Если счетчик меньше 5, устанавливаем таймер для следующего запроса
      if (counter < 5) {
        setTimeout(doRequest, 5000); // Устанавливаем задержку в 5 секунд
      }
    })
    .catch(error => console.error(error));
};

// Начинаем выполнение
doRequest();
Ответ написан
Комментировать
Aetae
@Aetae Куратор тега JavaScript
Тлен
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));

const request = () => fetch('https://your-request-url.ru')
	.then(response => response.json())
  .then(console.log);

async function repeat(request, interval = 5000, times = Infinity) {
  do {
    await request();
    
    if (--times < 1) break;
    
    await delay(interval);
    
  } while (true);
}

repeat(request, 5000, 5)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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