我有一个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
? 在循环中进行新的打印?
编辑:感谢您的回答。为了将来参考,我的问题是触发额外打印的事件被埋在循环中,所以一旦执行,控制权就交还给未完成的循环,然后覆盖它。干杯。