setInterval 函数循环太快

setInterval function looping too fast

本文关键字:循环 函数 setInterval      更新时间:2023-09-26

>我的代码与下面的代码类似,并且setInterval的运行速度比1000ms快得多,并且会崩溃/减慢页面速度。

var checkDiffTest = function(){
    console.log('test checkDiff init');
    var interval = setInterval(countdownTest(), 1000);
}
var countdownTest = function(){
    console.log('test countdown init');
    checkDiffTest();
}
countdownTest();

每次运行间隔时,您都会设置一个新间隔:

  • 您的间隔呼叫countdownTest()
  • 这叫checkDiffTest()
  • 这将创建一个新的间隔(而最后一个间隔仍在运行时)
每 1000 毫秒

启动一个新的 1000 毫秒间隔。


看起来你想要setTimeout()

同样countdownTest()因为setInterval的第一个参数会立即调用该函数。您希望将函数作为引用传递:

var checkDiffTest = function(){
    console.log('test checkDiff init')
    var interval = setTimeout(countdownTest, 1000);
}
var countdownTest = function(){
    console.log('test countdown init');
    checkDiffTest();
}
countdownTest();