Страницы

Поиск по вопросам

среда, 12 июня 2019 г.

Как определить состояние setInterval?

Привет. Допустим, есть код:
let interval = setInterval(() => doSomething(), 3000);
Чтобы остановить исполнение setInterval, нужно сделать clearInterval(interval);
Вопрос: а как, собственно, определить, работает ли ещё setInterval, или он уже прекратил свою работу?
console.log(interval) что во время работы, что уже после clearInterval показывает одно и то же число - 69. После перезагрузки страницы оно может измениться.


Ответ

let interval = setInterval(() => doSomething(), 3000); // interval - принимает id интервала (генерируется случайно, любое целое число > 0)
На сколько мне известно, отслеживать можно только одним способом:
let intervalID = setInterval(function(){}, 1000); setTimeout(function() { clearTimeout(intervalID); // Отменяем intervalID = null; // Следом задаем id значение false/null/undefined/0 (кому как нравится) }, 3000); // Просто для вывода состояния const statusIntervalID = setInterval(function() { if(intervalID) { // Проверяем активен ли интервал console.log('Interval is active'); } else { clearInterval(statusIntervalID); console.log('Interval cleared'); } }, 500);

Комментариев нет:

Отправить комментарий