function doKeyDown(event) {
switch (event.keyCode) {
case 32:
/* Space bar was pressed */
if (x == 4) {
setInterval(drawAll, 20);
}
else {
setInterval(drawAll, 20);
x += dx;
}
break;
}
}
Всем привет,
Я хочу вызвать drawAll()
один раз, не создавая цикл, который вызывает drawAll
снова и снова, должен ли я использовать рекурсивный метод для этого или я должен использовать clearInterval
?
Также, пожалуйста, скажите мне использовать clearInterval
? Спасибо :)
источник
setInterval
илиsetTimeout
.setInterval(doStuff);
. Передача строки вsetInterval
это неявный вызовeval
. Лучше вместо этого передать ссылку на функцию .Используйте
setTimeout(drawAll, 20)
вместо этого. Это только выполняет функцию один раз.источник
Я использовал угловой с электроном,
В моем случае
setInterval
возвращает объект Nodejs Timer. который, когда я назвалclearInterval(timerobject)
это, не работал.Я должен был сначала получить идентификатор и позвонить в clearInterval
clearInterval(timerobject._id)
Я боролся много часов с этим. надеюсь это поможет.
источник
Примечание: если вы хотите использовать отдельные функции для установки и очистки интервала, переменная интервала должна быть доступна для всех из них, в «относительной глобальной» или «на один уровень вверх» области:
источник