每隔60秒安排一次我的api通话

时间:2017-04-17 15:37:58

标签: html angular timer publish-subscribe angular2-services

我正在编写一个简单的angular2网络应用程序,每隔60秒就能点击一次api。 我有一个api电话,我想安排打电话,一切正常。

我如何每隔60秒调用一次API? 我的代码

>>

上面调用我的api调用类

app.componenet (calling class)
  constructor(HttpWebServiceService1: HttpWebServiceService1){
    HttpWebServiceService1.getHTTP()
      .subscribe(//do my stuff here);}

2 个答案:

答案 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();
            });
}

Demo