在javascript中使用OOP启动和停止计时器[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在javascript中使用OOP启动和停止计时器[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我想在javascript中第一次使用面向对象的Javascript创建一个启动和停止计时器。我没有启动计时器的问题。问题是打败它,因为即使我使用clearIntervalclearTimeout,它也不会停止。请问我的代码有什么问题,并且我可以解决它吗?

function StopWatch() {
    let timer = 0;
    let starter = function() {
        setInterval(function() {
            ++timer;
        }, 1000);
        // if(this.start) {
        //     throw new Error(`Timer already started`);
        // }
        console.log(timer);
    };
    let stopper = function() {
        window.clearTimeout(starter);
        console.log(timer)
    };
    this.start = starter;
    this.stop = stopper;
}
const sw = new StopWatch();
console.log(sw);

谢谢。

答案

setInterval函数返回一个引用,您将其传递给clearInterval

const interval;
//... 
interval = setInterval(...);
//... 
clearInterval(interval);

以上是关于在javascript中使用OOP启动和停止计时器[重复]的主要内容,如果未能解决你的问题,请参考以下文章

带有 pyserial RS232 的微型开关在 tkinter 线程中启动/停止计时器,但即使停止也继续运行

如何停止和启动计时器?

Javascript暂停计时器困境......无法计算它

停止核心位置更新,然后使用计时器重新启动它们

Viber 程序停止工作日志文件:启动计时器计时器只能用于以 QThread 1 启动的线程

连续暂停/停止和启动/恢复Java TimerTask?