У меня есть метод сброса в файле службы JavaScript, который сбрасывает все переменные в службе на нуль. Некоторые переменные содержат ссылки на интервальные таймеры. Я заметил, что использование метода сброса, по-видимому, отменяет интервалы (на самом деле это не должно быть так, но, похоже, это действительно так в моем приложении Angular).
Мой вопрос: имеет ли установка ссылки интервала значение null тот же эффект, что и формальная очистка интервала с помощью clearInterval(name)? Есть ли какие-либо технические различия, о которых я должен знать?
var myInterval = window.setInterval(function () { console.log('interval fired'); }, 500);
// Are these two equivalent?
myInterval = null;
clearInterval(myInterval);
Я заметил, что в спецификации, кажется, есть интерфейс WindowTimers, и именно отсюда берется метод clearInterval. Я предполагаю, что вызов clearInterval удаляет именованную ссылку из какого-то списка или массива. Если я установлю для таймера значение null, останется ли он в списке WindowTimers как нулевой объект, который просто не может быть выполнен?
clearTimeout()
, иclearInterval()
сбрасывают либо таймерsetTimeout()
, либо таймерsetInterval()
. Я не знаю ни одного API для получения списка активных в данный момент таймеров в любом браузере. 18.04.2016