首页 > 解决方案 > 在角度 6 中使用 HttpResponse 时如何每 5 分钟调用一次 API

问题描述

我正在使用一个HttpResponse对象来返回响应。现在我正在尝试实现一个计时器以每 5 分钟访问一次 API,但是HttpResponse在服务中使用 Object 我无法订阅计时器来访问 API。我如何实现这一目标?

服务:

async getTest(pagenumber: number, pagesize: number): Promise<HttpResponse<Object>> {
  const httpOptions = {
    headers: new HttpHeaders({ 'Content-Type': 'application/json' }),
    observe: 'response' as 'response'
  }
  const response = await this.httpClient.get<HttpResponse<Object>>(this.Service.getTestURL + '/' + pagenumber + '? pageSize=' + pagesize, { observe: 'response' }).toPromise();
    return response;
  }

ts:

this.subscription = timer(0, 10000).pipe(
  switchMap(() => this.myservice.checkdata())
).subscribe(result => this.statustext = result);

我已经尝试了所有解决方案,所以不要标记为重复问题。

标签: angular

解决方案


使用可以像这样使用 setInterval

export class AppComponent  {
  intervalID:any
ngOnInit(){
 this.intervalID = window.setInterval(function(){console.log('api Call goes here')}, 300000);
}

ngOnDestroy(){
      clearInterval(this.intervalID);

}
}

在setInterval中,可以放api调用

我希望这有帮助


推荐阅读