Передача setInterval () в переменную, но немедленно срабатывает - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь понять, почему этот код срабатывает немедленно.

const test = setInterval(() => {
  console.log("test"), 2;
});

Почему это происходит?Я даже не сделал test();

Ответы [ 2 ]

3 голосов
/ 30 июня 2019

Поскольку вам нужно передать 2 в качестве аргумента setInterval - в настоящее время он недоступен.Также обратите внимание, что единственная причина, по которой кто-либо присваивает результат setInterval, - это вызов clearInterval.Если вы хотите, чтобы он работал, когда вы хотите, сделайте test функцией.

const test = () => setInterval(() => console.log("test"), 2);
0 голосов
/ 30 июня 2019

Чтобы избежать таких синтаксических ошибок, мы можем сделать это следующим образом:

const test = setInterval(myTest, 2);

function myTest() {
   console.log("test")
}

Обязательно остановите функцию setInterval, когда она не используется,

function myStopFunction() {
  clearInterval(test);
}
...