如何在特定秒数后停止 setInterval? - clearInterval 未在条件下激活,例如:if (count > 3)

How do I stop setInterval after a specific second count? - clearInterval not activating in a conditional, ex: if (count > 3)

我意识到这个问题已经被问了很多,但我仍然无法让 clearInterval 启动。当然我缺少一些简单的东西:

...

let count = 0;

var intCount = null;
var intPic = null;
 
function Shuffle () {
  intCount = setInterval(Count, 1000);
  intPic = setInterval(ChangePic, 200);

  if (count > 3) {
    clearInterval(intCount);
    clearInterval(intPic);
  }
}

function Count () {
  count++;
}

...

Shuffle() 来自点击并触发 setIntervals 并且计数确实增加(远远超过 4)并且永不停止。

setInterval 是一个异步任务。单击 this.When shuffle 事件循环进入画面,它创建两个 setIntervals 并且 shuffle 函数完成执行。所以对于每次间隔迭代,js引擎都可以访问count和changPic函数。你可以在那里写下你的条件。 将计数检查放入计数函数中。

let count = 0;

var intCount = null;
var intPic = null;

function Shuffle () {
  intCount = setInterval(Count, 1000);
  intPic = setInterval(ChangePic, 200);
}

function Count () {
   if (count > 3) {
      clearInterval(intCount);
      clearInterval(intPic);
   } else {
      count++;
   }
}