Ingernirated
@Ingernirated
Романыч

Как отследить количество интервалов, которые наложились друг на друга?

Например, если две функции, одна устанавливает интервал, другая останавливает.
Но при более чем одном разе вызове функции установки интервала, он не начинается заново, а накладывается ещё поверх.
Как можно отследить, сколько интервалов уже работает в данный момент?
И как их все можно остановить одним действием?
При попытках много раз делать clearInterval, не помогало.
var step;
function go() {
 step = setInterval("func", 1000);
}
function stop() {
clearInterval(step);
}
  • Вопрос задан
  • 142 просмотра
Решения вопроса 2
Stalker_RED
@Stalker_RED
var intervals = [] // массив, пока пустой
function go() {
 var intervalId = setInterval("func", 1000);
 intervals.push(intervalId) // добавляем идентификатор таймера в массив
}
function stopAll() {
  intervals.forEach(id=>clearInterval(id))  // останавливаем все
  intervals = [] // опустошаем список
}
function getIntervalsCount(){
  return intervals.length // надеюсь, хоть это очевидно
}
Ответ написан
Комментировать
Bobert88
@Bobert88
Vice President of Javascript, very important guy.
Можно, например, так:
https://codepen.io/glebez/pen/WEpJZd?editors=0010
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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