如何启动和停止多个JavaScript计时器?

arm*_*ive 1 javascript timer

我想在JavaScript中运行一个计时器30秒,播放一个哔哔.WAV文件,然后计数10秒再次播放蜂鸣声.我想要重复此操作,直到达到所需时间或用户介入并单击停止按钮.

这就是我实现它的方式:

function startWorkOut(param) {

        if (param === 1) {
            setTimeout(playBeep, 30000); //30 second workout
        }
        else if (param === 0) {
            setTimeout(playBeep, 10000); //10 second rest
        }
        return;
}

function playBeep() {

        beep.play(); //already loaded above this snippet

        i++; //simple switch for going back and forth between 30 & 10 secs
        if (i % 2 === 1) {
            startWorkOut(0);
        }
        else startWorkOut(1);

        return;     

}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何阻止它.因为这两个函数来回互相调用,我需要知道如何进行某种手动中断.

Sus*_* -- 7

将其分配给变量

 var beepTimer = setTimeout(playBeep, 30000); //30 second workout

clearTimeout(beepTimer);  // This will clear that timer
Run Code Online (Sandbox Code Playgroud)