setTimeout()和setInterval()无法正常工作

时间:2019-03-19 04:09:21

标签: javascript

请考虑以下示例。

var secondsCount = 0;
if( secondsCount <= 1800 )
{
   setInterval(function(){
     secondsCount++; 
     console.log( secondsCount ) 
   }, 1000);
}

如果我们将上述代码运行到将近1800秒(30分钟),我们会发现 secondsCount 值与实际经过的秒数(或分钟)不相等。

1 个答案:

答案 0 :(得分:0)

尝试一下...

var secondsCount = 0;

var x = setInterval(function() {
    secondsCount++; 
    console.log(secondsCount);

    if (secondsCount >= 1800) {
        clearInterval(x);
    }

}, 1000);

请注意, setInterval setTimeout 必须至少使用最小延迟。参见Reasons for delays longer than specified。实际上,不能保证您的回调将在“确切的”设置时间内被调用。