如何跳过setInterval函数的第一个延迟?

时间:2011-08-11 12:26:09

标签: javascript timer setinterval

当我们使用setInterval时,它会延迟指定的时间,然后运行第一个参数中指定的函数。如果我不想第一次延迟,我该怎么办?

我有一个解决方案,最初调用该函数,然后使用setInterval,因此第一个调用延迟将不存在。但这不是正确的解决方案。所以如果有人有另一种解决方案那么请让我知道。

4 个答案:

答案 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);