在 javascript 中定期暂停 setInterval 循环

Periodic pausing of a setInterval loop in javascript

我想知道是否有办法 "pause" 一个 javascript setInterval 命令然后在几秒钟后恢复它,然后通过循环,暂停一段时间同时,再次开始循环,再次暂停等等?换句话说,当一个逻辑条件正确时,暂停一段设定的时间,然后再拿起?

使用伪代码,我在想这样的事情:

setInterval(fn, 1000);

pausecondition = false;

fn()
{
  // do stuff, including pausecondition

  if (pausecondition == true)
  {
     // pause for two seconds
     // pausecondition = false
   }
}

我正在尝试的是每 1000 毫秒工作一次的 setInterval,然后当暂停条件为真时,函数暂停两秒,然后 setInterval 像以前一样每 1000 毫秒恢复一次。

像这样使用setTimeout函数怎么样?

var pausecondition = false;
var fn = function (){
  if (pausecondition) {
    setTimeout(function(){
      pausecondition = false;
      fn();
    }, 2000);
   } else {
     // no pause, run logic
   }
}

setInterval(fn, 1000);
var pauseCondition = {
    enabled: false,
    counter: 0,
    countTo: 2,
};

增加并检查计数器 >= countTo