如果我想定期触发一个事件,我会使用类似 (coffeescript) 的东西:
setInterval (() => myFunction()), 300000
但我通常希望立即调用 myFunction,然后定期调用。目前我通过调用 setTimeout 和 setInterval 来做到这一点,例如,
setTimeout (() => myFunction()), 0
setInterval (() => myFunction()), 300000
或
myFunction()
setInterval (() => myFunction()), 300000
setInterval 可以一步完成吗?
最佳答案
如果您的函数能够返回自身,那么可以。
function myFunction() {
// do some work
return myFunction;
}
setInterval(myFunction(), 300000);
我会让你翻译成 CS。
现在您正在调用该函数,而不是将其传递给 setInterval()
。该函数运行并返回自身,它由 setInterval()
接收并按您预期的方式调用。
我不懂 CS,但看起来您可能正在传递一个调用您的函数的匿名函数。
如果是这样,我不确定你为什么要这样做,但它确实保证你可以采用这种方法,因为你不需要关心原始的返回值。
function myFunction() {
// do some work
}
setInterval(function() {
myFunction();
return myFunction;
}(), 300000);
如果在每个间隔运行的匿名函数中还有更多工作要做,则为该函数命名并将 return myFunction;
更改为 return callback;
。
function myFunction() {
// do some work
}
setInterval(function callback() {
myFunction();
// some other work
return callback;
}(), 300000);
关于javascript - javascript 的 'setInterval' 是否可以配置为立即触发,并有一个时间间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21955372/