我有一个我想立即调用的函数,然后使用setInterval每十秒更新一次。
目前我使用的是
myFunction();
setInterval(function(){
myFunction();
}, 10000);
有更好的方法吗?我觉得应该有一种方法告诉setInterval在通话时触发,但我似乎找不到任何东西。
答案 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 );
它会立即执行,并且由于函数自行返回,它会继续运行。
答案 2 :(得分:1)
另一种方法是修改你的函数以使用setTimeout调用自身,然后你可以用一行开始整个事情:
function myFunction() {
// do stuff
setTimeout(myFunction, 10000);
}
myFunction();
正如评论中所指出的,这与使用setInterval
不完全相同(可能会丢弃一些函数调用,具体取决于函数执行代码所需的时间)。