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

4

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

我有一个解决方案,即最初调用该函数,然后使用setInterval,因此第一次调用没有延迟。但这不是正确的解决方案。如果有人有其他解决方案,请告诉我。


你在说哪种编程语言?JavaScript吗?请更新你的问题并添加相应的标签。 - Veger
4个回答

3
setInterval(function(){
    doFunction();
}, 15000);

doFunction();

那是否立即呢 :)

1

另一种方式:

(function run(){
        // code here
    setTimeout(run,1000);
}())

在严格模式下访问arguments.callee会抛出异常。 - viam0Zah

1
阅读这篇文章。在运行时更改SetInterval的间隔 Peter Bailey有一个很好的通用函数,然而gnarf也有一个不错的小例子。
你需要为此创建自己的计时器。SetInterval不允许您在执行时更改间隔延迟。在回调循环中使用setTimeout应该可以让您编辑间隔时间。

0

为此创建一个包装器。

function runPeriodically(func, miliseconds) {
    func();
    return setInterval(func, miliseconds);
}

function onePiece() { /* */ }
runPeriodically(onePiece, 100);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接