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/
答案 0 :(得分:1)
这种情况发生了。句子不会每秒记录,也不会记录您的机器。你的内存不足,无法解决,每1ms第一次6次操作,每1ms第二次3次操作。 看看这个What is minimum millisecond value of setTimeout?是关于setTimeout的,但它很有用。