以毫秒为间隔检测秒数

时间:2015-09-03 19:10:24

标签: javascript timer setinterval milliseconds seconds

setInterval函数中的第二个参数用于以毫秒为单位延迟执行。正如预期的那样,1000毫秒将每秒触发该功能。但这是一件我不太懂的奇怪事情。在第二个时间间隔内,我将延迟参数设置为1毫秒并放入函数增量数和条件以检查每个传递的1000个数字。我期望它的行为就像秒间隔计时器一样。但它并没有像我希望的那样完全运行。

对此有任何解释吗?

// detect seconds in a second interval timer (works as expected)
setInterval(function() {
    console.log('passed second from the secondInterval');
}, 1e3);

// detect seconds in a millisecond interval timer (I don't have any explanation for the behavior).
(function() {
    var i = 0;
    setInterval(function() {
        if (i === 0) {
            i++;
            return;
        }

        if (i % 1000 === 0) console.log('passed second from the millisecondInterval');
        i++;
    }, 1);
})();

查看jsfiddle中的示例,看看我的意思 http://jsfiddle.net/dwh82zos/

1 个答案:

答案 0 :(得分:1)

这种情况发生了。句子不会每秒记录,也不会记录您的机器。你的内存不足,无法解决,每1ms第一次6次操作,每1ms第二次3次操作。 看看这个What is minimum millisecond value of setTimeout?是关于setTimeout的,但它很有用。