我有以下方法,它返回一个可观察对象:
getWhatsUp() {
return this.http.get('user/whatsUp?token=' + this.getToken())
.map((res:Response) => res.json())
.catch(
err => {
this.checkToken(err);
return Observable.throw('Unverified token');
}
);
}我通过以下方式在我的组件中使用它:
ngOnInit() {
this.getWhatsUp();
}
getWhatsUp() {
this.service.getWhatsUp()
.subscribe(
data => {
this.activities = data.activities;
},
error => { console.log("Error #333"); }
);
}如何每10秒运行一次来升级活动,并确保api调用不会堆叠并多次运行?
我知道interval方法,但我不确定如何在我的设置中使用它
发布于 2016-08-27 03:48:30
为什么不干脆:
ngOnInit() {
setInterval(() => this.getWhatsUp, 10000);
}如果您需要有关语法的更多信息,可以使用ES6 Arrow function again。
发布于 2016-08-27 03:54:47
RxJS方式
ngOnInit(){
let sec = 10;
Observable.timer(0, sec * 1000).subscribe(this.getWhatsUp());
}发布于 2016-08-27 03:48:01
一种可能的解决方案是创建一个额外的函数作为包含setInterval的处理程序。setInterval(myTimer,10000)
ngOnInit() {
this.getWhatsUpHandler();
}
getWhatsUpHandler(){
setInterval(getWhatsUp, 10000);
}
getWhatsUp() {
this.service.getWhatsUp()
.subscribe(
data => {
this.activities = data.activities;
},
error => { console.log("Error #333"); }
);
}https://stackoverflow.com/questions/39173479
复制相似问题