Javascript setTimeout函数开始执行太多次

我创建了一个带有setTimeout函数的循环,它在调用它本身的第二或第三步之后出现问题,因为它当时开始执行两次.这就是我的功能:

var value = 70, 
    intervalID = null;

function interval() {
  intervalID = setTimeout(countDown, 1000);
}

function countDown() {
  value--;
  if(value > 0) {
    clearTimeout(intervalID);
    interval();
  } else {
    endInterval();
  }
}

function endInterval() {
  // do something
}

如果我将变量值控制为69,68,之后在一次函数调用中开始减少变量值两次.我不是从一个地方调用函数countDown().

可能是什么问题呢?

编辑:此代码现在有效.

解决方法:

我建议你通过停止前一个来“消毒”超时.

function interval() {
  clearTimeout(intervalID);
  intervalID = setTimeout(countDown, 1000);
}

然而,它似乎控制症状而不是疾病的原因.因此,最好找出问题的原因.

上一篇:c# – 如何确定给定范围内的最佳间隔计数?


下一篇:贪心策略---不重叠的区间个数