У меня есть setInterval
, вызывающий цикл, который отображает анимацию.
Когда я clearInterval
в ответ на пользовательский ввод, возможно, есть один или несколько обратных вызовов цикла в очереди. Если я помещаю вызов функции непосредственно после оператора clearInterval
, сначала завершается вызов функции (что-то печатается на экране), затем выполняется обратный вызов цикла в очереди, удаляя то, что я хотел напечатать.
См. Код ниже.
function loop() {
// print something to screen
}
var timer = setInterval(loop(), 30);
canvas.onkeypress = function (event) {
clearInterval(timer);
// print something else to screen
}
Какой лучший способ справиться с этим? Поставить задержку на // print something else to screen
? Делаете новую печать в цикле?
Редактировать: Спасибо за ответы. Для дальнейшего использования моя проблема заключалась в том, что событие, которое вызвало дополнительную печать, было скрыто в цикле, поэтому после его выполнения управление было возвращено в незавершенный цикл, который затем перезаписал его. Приветствия.