javascript - 在 ** :**:00 处重复 javascript 函数

标签 javascript

我可以每 60 秒运行一次函数:

        Timer: function() {
           setInterval(fxn, 60000)
        },

但是有没有办法在每分钟轮到的时候运行一个函数呢? IE 在 11:20:00、11:21:00 等?

最佳答案

你可以用 setTimeout() 来实现:

function onTheMinute(fn) {
  function ms() {
    var now = new Date();
    return (60 - now.getSeconds()) * 1000;
  }

  function timer() {
    fn();
    setTimeout(timer, ms());
  }
  setTimeout(timer, ms());
}

这设置了在下一分钟边界发生的超时,并在发生时调用函数。每次都会为下一分钟设置一个新的计时器。

检查毫秒也会稍微准确一些,但无论如何计时器都不是那么准确。

关于javascript - 在 ** :**:00 处重复 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641550/

相关文章:

Javascript动态下拉菜单我也可以在按钮中看到它

javascript - 使数据表中的列数可变

javascript - Observable - 将 2 个 Promise 转换为一个 Observable

javascript - Angular 2.0 路由 - TS 2305 ...没有导出成员 'ModulewithProviders'

javascript - 客户端验证在 jQuery UI 对话框中不起作用

javascript - 拉取第一个输入实例并通过 JS 添加 id

javascript - 是否有与 Bing 通用事件跟踪的 amp-analytics 等效的 AMP 功能?

javascript - 用于否定父元素中特定 HTML 元素的 JQuery 选择器

javascript - 安装 Hook 错误 : "Error: An AuthUI instance already exists

javascript - 带有 history.push 的 React-router 嵌套路由