javascript - 首次调用 setInterval 的时间安排与其他调用不同

标签 javascript settimeout setinterval

我尝试以不同的方式对 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() 进行这样的调试,这样您就不必点击所有警报框时间。

关于javascript - 首次调用 setInterval 的时间安排与其他调用不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347871/

相关文章:

javascript - react native : onPress triggering another onPress

javascript - AnimTrap CSS动画循环

javascript - setInterval() 函数如何工作?

javascript - Google Maps API - 外部 JSON 中未显示标记

javascript - 在 javascript 中使用 map 更改数组

javascript - Ajax检查文件是否存在时设置超时

javascript - 调用 setTimeout 是否清除调用堆栈?

Javascript:如何使用 setTimeout 延迟确保多个嵌套循环的顺序执行?

javascript 重置间隔

javascript - 每 x 秒多个 XmlHttpRequest