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