当我们使用setInterval时,它会延迟指定的时间,然后运行第一个参数中指定的函数。如果我不想第一次延迟,我该怎么办?
我有一个解决方案,最初调用该函数,然后使用setInterval,因此第一个调用延迟将不存在。但这不是正确的解决方案。所以如果有人有另一种解决方案那么请让我知道。
答案 0 :(得分:3)
setInterval(function(){
doFunction();
}, 15000);
doFunction();
立即这样做:)
答案 1 :(得分:1)
阅读这篇文章。 Changing the interval of SetInterval while it's running
Peter Bailey具有良好的通用功能,但gnarf也有一个很好的小例子。
您必须为此创建自己的计时器。 SetInterval不允许您在执行时更改间隔延迟。在回调循环中使用setTimeout应该允许您编辑间隔时间。
答案 2 :(得分:1)
另一种方式:
(function run(){
// code here
setTimeout(run,1000);
}())
答案 3 :(得分:0)
为此创建一个包装器。
function runPeriodically(func, miliseconds) {
func();
return setInterval(func, miliseconds);
}
function onePiece() { /* */ }
runPeriodically(onePiece, 100);