Как бы вы завершили бесконечный цикл (`setInterval`) в консоли? - PullRequest
0 голосов
/ 15 мая 2018

Например, мы можем запустить

setInterval(function(){console.log("Hello, SO!")}, 2000);

Hello, SO! повторяется каждые две секунды в терминале. На рисунке ниже 6 повторов.

enter image description here

Существует ли комбинация клавиш, которую вы можете нажать или команду, которую вы можете набрать, чтобы остановить бесконечный цикл вконсоль?

Ответы [ 3 ]

0 голосов
/ 15 мая 2018

Вы можете остановить выполнение скрипта на текущей странице, используя кнопку паузы, описанную здесь .Это приостановит все JS на странице, а не только ваш интервал.

0 голосов
/ 15 мая 2018

Чтобы убить интервалы, вам нужен дескриптор для их передачи на clearInterval(). В вашем образе после выполнения setInterval() вы видите, что дескриптор возвращается на консоль как 4491. Таким образом, вы можете убить его так:

clearInterval(4491);

В качестве альтернативы (и лучше), вы должны назначить этот дескриптор возврата переменной, чтобы вы могли уничтожить ее программно:

let interval = setInterval(() => console.log('Hello, SO!'), 2000);
clearInterval(interval);

Edit:
Вы также можете перебор. Дескриптор - это число int64, поэтому он может быть огромным, но почти для любого приложения он будет небольшим, поскольку дескрипторы увеличиваются. Обратите внимание, что этот метод может сломать другие пакеты, которые зависят от интервалов.

for (var i = 1; i < 9999; i++) clearInterval(i);
0 голосов
/ 15 мая 2018

Это ваша лучшая ставка, которую я знаю.

var interval = setInterval(() => console.log("hello, world"), 2000);
clearInterval(interval);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...