我正在编写一个简单的angular2网络应用程序,每隔60秒就能点击一次api。 我有一个api电话,我想安排打电话,一切正常。
我如何每隔60秒调用一次API? 我的代码
>>
上面调用我的api调用类
app.componenet (calling class)
constructor(HttpWebServiceService1: HttpWebServiceService1){
HttpWebServiceService1.getHTTP()
.subscribe(//do my stuff here);}
答案 0 :(得分:1)
简单的方法就是使用setInterval
。 (see the docs)
你也可以利用RxJS:
Observable.interval(60000)
.switchMap(() => {
// return your http call here
return HttpWebServiceService1.getHTTP()
})
上面将返回一个observable,它每隔60秒使用你的服务尝试一次http请求,然后发出该http请求的结果。
答案 1 :(得分:0)
您可以使用间隔,然后每次间隔发出时,您可以使用switchMap获取http调用的结果,然后订阅它。 @snorkpete有一个正确的答案。如果需要立即获取数据,然后每隔60秒就可以使用concat
运算符立即获得结果,然后将其切换到如下区间:
public getData(){
return this.getHttpRequest().concat(
Observable.interval(60000)
.switchMap(() => this.getHttpRequest()));
}
private getHttpRequest(): Observable {
return this.http.get('http://XX.XX.XX.XX/test/test').map(res => {
return res.json();
});
}