gpt4 book ai didi

javascript - 在 clearInterval 之后执行代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:50:43 25 4
gpt4 key购买 nike

我有一个 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
}

处理此问题的最佳方法是什么?延迟 //在屏幕上打印其他内容?在循环中进行新打印?

编辑:感谢您的回答。为了将来引用,我的问题是触发额外打印的事件被埋在循环中,所以一旦执行,控制权被交还给未完成的循环,然后覆盖它。干杯。

最佳答案

您还可以使用标志来忽略任何排队的函数:

var should;

function loop() {
if(!should) return; // ignore this loop iteration if said so

// print something to screen
}

should = true;
var timer = setInterval(loop, 30); // I guess you meant 'loop' without '()'

canvas.onkeypress = function (event) {
should = false; // announce that loop really should stop
clearInterval(timer);
// print something else to screen
}

关于javascript - 在 clearInterval 之后执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7620774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com