每60秒调用一个函数

304

使用setTimeout()函数可以在指定的时间启动一个函数:

setTimeout(function, 60000);

但是如果我想多次启动函数怎么办?每当经过一段时间,我都想执行该函数(例如每60秒执行一次)。


这个回答解决了你的问题吗?JavaScript:每分钟运行一次代码 - Nakilon
15个回答

1

我看到这里没有提到如果需要在重复调用函数时传递参数的问题。使用setTimeout(myFunc(myVal), 60000);会导致在前一次调用完成之前调用函数的错误。

因此,您可以这样传递参数:

setTimeout(function () {
            myFunc(myVal);
        }, 60000)

更详细的信息可参考JavaScript garden。希望能对某些人有所帮助。

1
// example:
// checkEach(1000, () => {
//   if(!canIDoWorkNow()) {
//     return true // try again after 1 second
//   }
//
//   doWork()
// })
export function checkEach(milliseconds, fn) {
  const timer = setInterval(
    () => {
      try {
        const retry = fn()

        if (retry !== true) {
          clearInterval(timer)
        }
      } catch (e) {
        clearInterval(timer)

        throw e
      }
    },
    milliseconds
  )
}

1

在这里,我们使用setInterval()将自然数0到......n(下一个数字每60秒在控制台打印)进行了安慰,保留HTML标签。

var count = 0;
function abc(){
    count ++;
    console.log(count);
}
setInterval(abc,60*1000);

1
能够解释一下它是如何解决这个问题的会更好。 - vahdet

0
我倾向于调用一个包含循环函数的函数,该函数以固定时间间隔调用setTimeout

function timer(interval = 1000) {
  function loop(count = 1) {
    console.log(count);
    setTimeout(loop, interval, ++count);
  }
  loop();
}

timer();


-1

有两种调用方式-

  1. setInterval(function (){ functionName();}, 60000);

  2. setInterval(functionName, 60000);

以上函数将每60秒调用一次。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接