第一次调用 setInterval 的时间与其他时间不同

Timing first call of setInterval differently than the rest

我正在尝试安排 setInterval 的第一次调用与其余调用不同的时间,以便在第一次调用之前需要 100 秒,然后在所有其余调用之间需要 5 秒。这是我的代码:

setTimeout((setInterval(test,5000)),100000);

function test(){
   alert("hi!");
}

JSFiddle

第一个参数必须是一个函数。您正在使用 (setInterval(test,5000))。这不是一个函数,而是一个立即运行的语句,以便 JS 引擎可以计算结果并将其传递给 setTimeout,就像它会立即计算 (3+3) 并传递 6 ] 如果您使用 setTimeout((3+3), 100000) 代替该函数。

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

setTimeout(function() { setInterval(test,5000); },100000);

function test(){
   alert("hi!");
}

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