setInterval 的首次调用计时与其他调用不同

Timing first call of setInterval differently than the rest

本文关键字:调用 其他 setInterval      更新时间:2023-09-26

我正在尝试以不同于其余调用的方式对setInterval的第一次调用进行计时,以便在第一次调用之前需要 100 秒,然后在其余所有调用之间需要 5 秒。这是我的代码:

setTimeout((setInterval(test,5000)),100000);
function test(){
   alert("hi!");
}

JSFiddle

第一个参数需要是一个函数。您正在使用(setInterval(test,5000)) .这不是一个函数,而是一个立即运行的语句,以便 JS 引擎可以评估结果并将其传递给 setTimeout ,就像如果您使用setTimeout((3+3), 100000),它会立即评估(3+3)并将6传递给函数一样。

所以解决方案是传递一个函数:

setTimeout(function() { setInterval(test,5000); },100000);
function test(){
   alert("hi!");
}

一个不相关的提示:使用 console.log() 而不是 alert() 进行这样的调试,这样您就不必一直单击警报框。