调用函数一次,然后设置间隔

Call function once, then setInterval

本文关键字:然后 设置 一次 函数 调用      更新时间:2023-09-26

我有一个函数,我想立即调用,然后使用 setInterval 每十秒更新一次。

目前我正在使用类似的东西

myFunction();
setInterval(function(){
 myFunction();
}, 10000);

有没有更好的方法可以做到这一点? 我觉得应该有一种方法可以告诉 setInterval 在通话时触发,但我似乎找不到任何东西。

这不是任何"更好",但它可以用更少的行做你想要的:

myFunction();
setInterval(myFunction, 10000);

如果你从函数内部返回函数,你可以使用这样的小技巧:

function foo() {
    alert('hi');
    return foo;
}
// no need to call it before setting the interval
window.setInterval( foo() , 3000 );

立即执行,并且由于函数返回自身,因此它继续运行。

js小提琴示例

另一种方法是修改你的函数以使用 setTimeout 调用自身,然后你可以用一行开始整个事情:

function myFunction() {
    // do stuff
    setTimeout(myFunction, 10000);
}
myFunction();

正如注释中指出的那样,这与使用 setInterval 并不完全相同(这可能会丢弃一些函数调用,具体取决于函数中的代码执行所需的时间)。