javascript - javascript 的 'setInterval' 是否可以配置为立即触发,并有一个时间间隔?

标签 javascript coffeescript

如果我想定期触发一个事件,我会使用类似 (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/

相关文章:

javascript - Chrome 自动填充/自动完成没有密码值

javascript - 在其他类之间共享两个实例

将 coffeescript 转换为 javascript 或已编译的 java 可执行文件的 Java 库?

javascript - 检查第一行是否存在任何带有空白值的表单输入

javascript - 数组 .each() 循环返回字符串而不是 jQuery 中的值

javascript - Node.js 如何在运行时如此快速地执行同步 'require()' 调用?

javascript - Ajax 充当 GET 方法,即使是 POST 方法

c# - 在asp.net mvc View 中创建viewModel对象

javascript - 如何使用 javascript scrollIntoView() 转到 id ,并在页面中间?

node.js - 使用 Jenkins 自动化 CoffeeScript 编译