我正在尝试在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()工作?
答案 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 进程永远不会停止。为此,我们需要声明一个布尔值变量。当按键被按下时它会得到值“true”,并在函数的开头用“if”检查它。