Здравствуйте, могучие люди из inte rnet:)
Когда немного поигрался с некоторыми JS, я заметил, что не смог использовать возвращаемое значение setInterval(function, milliseconds)
внутри clearInterval(var)
.
Вот рабочая версия очистки интервала:
const intervalId = setInterval(() => foo(), 500);
setTimeout(() => clearInterval(intervalId), 2000);
В этом примере интервал вызывает метод foo()
каждые 500 мс. Через 2 с это будет остановлено clearInterval(intervalId)
, вложенным в setTimeout(function, milliseconds)
.
Не работает, используется setInterval внутри clearInterval:
setTimeout(() => clearInterval(setInterval(() => foo(), 500)), 2000);
- ( Примечание: Замена синтаксиса функции стрелки для обычного вызова функции не изменила результатов)
В отличие от приведенного выше примера, здесь переменная не используется для удержания возвращаемого значения setInterval()
.
Все же это приводит к тому, что интервал никогда не вызывается / немедленно останавливается .
Это кажется мне очень странным (и потенциально может быть ошибкой? ).
Может кто-нибудь высказать свое мнение / объяснить это?
Спасибо:)