调用函数一次,然后调用setInterval

时间:2013-10-07 20:02:02

标签: javascript setinterval

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

目前我使用的是

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

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

3 个答案:

答案 0 :(得分:4)

这不是“更好”,但它用更少的线做你想做的事情:

myFunction();
setInterval(myFunction, 10000);

答案 1 :(得分:2)

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

function foo() {
    alert('hi');
    return foo;
}

// no need to call it before setting the interval
window.setInterval( foo() , 3000 );

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

jsFiddle example

答案 2 :(得分:1)

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

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

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