如何在Angular 4中使用clearInterval()

时间:2017-07-25 03:54:10

标签: javascript angular clearinterval

我正在尝试在Angular 4应用程序中使用setInterval。

const inter = setInterval(() => {
  // logic resulting in exitCondition
  if(exitCondition) {
    clearInterval(inter);
  }
}, 1000);

此设置在vanilla javascript中运行良好,但clearInterval()似乎在Angular中不起作用。做了一些研究后,我找到了Angular 1.x的间隔服务:

https://docs.angularjs.org/api/ng/service/ $间隔

Angular 4有什么相似之处吗?或者是否有解决方法使clearInterval()工作?

3 个答案:

答案 0 :(得分:14)

您可以这样设置,

  this.interval = setInterval(() => {

  }, 1000);

并且像这样清楚,

if (this.interval) {
   clearInterval(this.interval);
}

答案 1 :(得分:1)

如果您希望在某些情况下使用相同的方法

var a = 1;
    this.interval = setInterval(() => {
      console.log(a++)
      if(a > 30){
        clearInterval(this.interval);
      }
    }, 1000);

答案 2 :(得分:0)

如果setInterval函数在用户按下按键后启动,则有问题。如果用户多次按下该键,则会发生以下情况:

  • setInterval1 -> 开始
  • setInterval2 -> 开始

当按下停止按钮时:

  • setInterval2 -> 停止

因此,setInterval1 进程永远不会停止。为此,我们需要声明一个布尔值变量。当按键被按下时它会得到值“true”,并在函数的开头用“if”检查它。