首页 > 解决方案 > 如何使 clearInterval 工作,为什么它不工作?

问题描述

我在这里有一个条件,如果a = 6,停止setInterval所以我用于clearInterval我的条件,但它没有生效,任何人都可以帮助我如何clearInterval在这种条件下进行工作?

请注意,在我的情况下doSomething,在一段时间后执行 makig 也是至关重要的,这就是我setTimeout在这里使用的原因。

function doSomething() {

  let a = 1;

  return setInterval(() => {
    if (a < 6) {
      a++;
      console.log(a);
    } else {
      a = 1;
    }
  }, 1000)
}

setTimeout(doSomething, 5000);

var id = doSomething();

if (a === 6) {
  clearInterval(id);
}

标签: javascriptfunctionsetintervalclearinterval

解决方案


你可以clearInterval在里面打电话setInterval- 我认为这就是你想要实现的目标:

let intervalId;

function doSomething() {
  let a = 1;

  return setInterval(() => {
    console.log(a);

    if (a++ === 6) {
      clearInterval(intervalId);
    }
  }, 1000);
}

setTimeout(() => {
  intervalId = doSomething();
}, 5000);

console.log('Waiting for 5 seconds before calling doSomething..');


推荐阅读