我可以每 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/