请考虑以下示例。
var secondsCount = 0;
if( secondsCount <= 1800 )
{
setInterval(function(){
secondsCount++;
console.log( secondsCount )
}, 1000);
}
如果我们将上述代码运行到将近1800秒(30分钟),我们会发现 secondsCount 值与实际经过的秒数(或分钟)不相等。
答案 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。实际上,不能保证您的回调将在“确切的”设置时间内被调用。