如何在 Angular 4 中使用 clearInterval()
How to use clearInterval() in Angular 4
我正在尝试在我的 Angular 4 应用程序中使用 setInterval。
const inter = setInterval(() => {
// logic resulting in exitCondition
if(exitCondition) {
clearInterval(inter);
}
}, 1000);
此设置在原版 javascript 中运行良好,但 clearInterval()
在 Angular 中似乎不起作用。在做一些研究后,我发现 Angular 1.x 的间隔服务:
https://docs.angularjs.org/api/ng/service/$间隔
Angular 4 有类似的东西吗?或者是否有使 clearInterval() 工作的解决方法?
可以这样设置,
this.interval = setInterval(() => {
}, 1000);
像这样清除,
if (this.interval) {
clearInterval(this.interval);
}
如果你想在某些条件下使用相同的方法
var a = 1;
this.interval = setInterval(() => {
console.log(a++)
if(a > 30){
clearInterval(this.interval);
}
}, 1000);
如果setInterval函数是在用户按下按键后才启动的,那就有问题了。如果用户多次按下该键,则会发生以下情况:
- setInterval1 -> 开始
- setInterval2 -> 开始
当按下停止按钮时:
- setInterval2 -> 停止
因此,setInterval1 进程永远不会停止。为此,我们需要声明一个布尔值变量。按下键时它会得到值“true”,并在函数开头用“if”检查它。
我正在尝试在我的 Angular 4 应用程序中使用 setInterval。
const inter = setInterval(() => {
// logic resulting in exitCondition
if(exitCondition) {
clearInterval(inter);
}
}, 1000);
此设置在原版 javascript 中运行良好,但 clearInterval()
在 Angular 中似乎不起作用。在做一些研究后,我发现 Angular 1.x 的间隔服务:
https://docs.angularjs.org/api/ng/service/$间隔
Angular 4 有类似的东西吗?或者是否有使 clearInterval() 工作的解决方法?
可以这样设置,
this.interval = setInterval(() => {
}, 1000);
像这样清除,
if (this.interval) {
clearInterval(this.interval);
}
如果你想在某些条件下使用相同的方法
var a = 1;
this.interval = setInterval(() => {
console.log(a++)
if(a > 30){
clearInterval(this.interval);
}
}, 1000);
如果setInterval函数是在用户按下按键后才启动的,那就有问题了。如果用户多次按下该键,则会发生以下情况:
- setInterval1 -> 开始
- setInterval2 -> 开始
当按下停止按钮时:
- setInterval2 -> 停止
因此,setInterval1 进程永远不会停止。为此,我们需要声明一个布尔值变量。按下键时它会得到值“true”,并在函数开头用“if”检查它。