Angular2 每 x 分钟刷新 API 以观察响应变化

Angular2 refresh API every x minutes to watch change in response

有没有办法,在 Angular 2 中观察 API 中的变化。

这是我的案例:

"errorCode":0,

"docId":"585846a1afe8ad12e46a4e60",

"status":0

状态可以是:

此状态将由验证文件的远程服务器上的工作人员 "changed"。这个状态只有"interrogated"通过API.

在我的前端,我有一个专用于显示文档状态的组件:

<p>Current State: {fileState}</p>

在我的组件上,我如何查看 api 调用结果中的状态变化:例如,我如何放置一个将调用 API 每 x 分钟验证状态并相应地更新视图?

你可以这样写:

checkStatus(minutes: number, docID: string) {
  Observable.interval(minutes * 60 * 1000)
    .switchMap(() => this.http.get(`/documents/${docID}`)
      // handle http errors here to prevent
      // breaking of interval observable
      .catch(error => Observable.of(error))
      .map(response => response.json())
    .subscribe(data => {
      this.fileState = 
        data.state === 0 ? 'pending' : 
        data.state === 1 : 'signed' : 'validated';
    })
}

不要忘记导入可观察运算符:

import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/switchMap';