您如何在回调执行结束时开始的时间间隔内 运行 Javascript 函数?

How do you run a Javascript function in an interval that starts at the end of callback execution?

我 运行 通过使用 setinterval 函数在 Javascript 中异步执行一个函数。

myVar = setInterval(myTimer, 5000);

myTimer 函数的执行时间可能会很长,有时会超过指定的延迟时间,在这种情况下,间隔会连续执行。我希望回调函数的下一次执行与上一次执行的结束有关。重申一下,我希望 myTimer 函数在之前完成的 5000 毫秒后变为 运行,并希望重复此操作。

是的,这可以使用 setTimeout 来完成。

function myTimer(){
   console.log("Exec func");
   // Rest of the functionality here
   setTimeout(myTimer, 5000);
}

myTimer();

你可以这样做:

function longFunction() {
  // Do your stuff here
}

var taskId;

function task() {
  longFunction();
  taskId = setTimeout(task, 5000);
}