这个JS计时器是如何暂停的?

时间:2016-02-29 18:32:53

标签: javascript timer

http://jsbin.com/hafejebaho/edit?html,output

大家好。我找到了这个定时器代码,它的功能相当不错。我试图理解它的逻辑,当我按下startPause按钮时,我似乎无法弄清楚计时器是如何暂停的。

根据代码,当你在运行== 0时按startPause然后启动increment()。但是,当你在运行== 1时再次按下startPause时,没有实际停止计时器的功能。怎么可能。我看到运行设置为0并且按钮名称更改为“恢复”但没有其他功能实际停止计时器..我会认为它们必须是某种中断计时器功能。

这是一个菜鸟问题,但我很感激任何答案... tx ..

1 个答案:

答案 0 :(得分:0)

那是因为increment()功能:

function increment() {
    if (running == 1) {
        setTimeout(function() {
            time++;
            document.getElementById("output").innerHTML = time;
            increment();
        }, 100);
     }
}

具体来说,increment()函数内的逻辑只会在running == 1时运行。由于running == 0按下暂停,逻辑就会停止。