@rdyrdy

Как сделать цикл с setInterval который запускался и останавливался через каждые 10 секунд?

Я написал вариант кода через рекурсию. Но когда я пытаюсь его запустить, мне выдает в консоли ошибку "Maximum call stack size exceeded" и потом выдает в консоли сразу 4000+ повторений.
Помогите пожалуйста

function printer(){


function getRandomNumber(min,max){
let time = Math.floor(Math.random() * (max - min + 2)) + min;
console.log(time)
}




function count(){
let intervalId = setInterval(getRandomNumber,16000,1,6)
setTimeout(function(){clearInterval(intervalId)}, 26000)
count()

}
count()
}


printer()
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ответы на вопрос 1
@rPman
Ты вызываешь count, запускающую новый setInterval рекурсивно , сразу как срабатывает тик интервала, т.е. с каждым новым тиком количество интервалов у тебя увеличивается, лимиты ресурсов у браузера заканчиваются и вот ошибка.

setInterval должен быть запущен однократно.

Код в примере и задача в вопросе отличаются, что нужно то?
Если исходить из задачи, нужно создать setTimeout, который через 10 секунд запустит setinterval с 1 секундным шагом, который уже в свою очередь будет вызывать твой принт и только его
Ответ написан
Ваш ответ на вопрос

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

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