我正在尝试创建一个Timer
这称为API call
每 10 秒,我使用setTimeOut
但问题是,它变成了无限循环,即使我推送到另一个页面,它也会继续加入 if 条件。
例子 :
我在启动 10 秒 API 调用的方法上调用此方法
setTimeout(() => {
this.onTimeOut();
}, 1000);
这就是onTimeOut()
方法...
onTimeOut() {
this.ApiCall().then(
success => {
if(success ['ok'] == 0){
this.navCtrl.push(myPage);
}
},
error => { console.log(error); });
}
setTimeout(() => {
this.onTimeOut();
}, 1000);
}
我听说过Debounce
and rxjs/rs
但我对它们不熟悉,你能给我一些建议吗?或者,如果这种方式更有效,请继续向我解释为什么它会变成循环。
目标是当它加入 if 并推送页面时,停止计时器。
更好地使用可观察量
this.sub = Observable.interval(10000)
.subscribe((val) => { console.log('called'); });
停止它使用
this.sub.unsubscribe();
确保导入interval
with
import 'rxjs/add/observable/interval';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)