Задать вопрос

Как установить в задержку setInterval() рандомное число?

Есть функция, которая должна вызываться с рандомным интервалом от 700мс до 900мс.
Описал я этот момент так:
setInterval(() => {
  it.circle();
}, Math.random() * (900 - 700) + 700);


Все вроде просто, должно работать. Но нет. Она вызывается с одной и той же задержкой, получившейся при ппервом вычислении.
До этого забивал в отдельную переменную задержку - консоль показывала, что переменная меняется, но функция так же вызывалась с одной и той же задержкой
  • Вопрос задан
  • 533 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
function randomInterval() {
    setTimeout(() => {
        it.circle();
        randomInterval();
    }, Math.random() * (900 - 700) + 700);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dmitry_pavlov
@dmitry_pavlov
World-class .NET freelance contractor (remotely)
Никак, если коротко. А если с хаком - то на каждое срабатывания интервала - чистить его и создавать новый с новым периодом.

P.S. Лучше опишите, задачу, которую хотите решить. Думается, найдутся более изящные решения.
Ответ написан
Ваш ответ на вопрос

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

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