Angular2 每 x 分钟刷新 API 以观察响应变化
Angular2 refresh API every x minutes to watch change in response
有没有办法,在 Angular 2 中观察 API 中的变化。
这是我的案例:
- 我将文档推送到 API /document/upload
- 这个APIreturn一个DOC id
- 使用对 /document/DOC_ID 的调用,API return 的 JSON 格式如下:
"errorCode":0,
"docId":"585846a1afe8ad12e46a4e60",
"status":0
状态可以是:
- 0 = 待定
- 1 = 签名
- 2 = 已验证
此状态将由验证文件的远程服务器上的工作人员 "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';
有没有办法,在 Angular 2 中观察 API 中的变化。
这是我的案例:
- 我将文档推送到 API /document/upload
- 这个APIreturn一个DOC id
- 使用对 /document/DOC_ID 的调用,API return 的 JSON 格式如下:
"errorCode":0, "docId":"585846a1afe8ad12e46a4e60", "status":0
状态可以是:
- 0 = 待定
- 1 = 签名
- 2 = 已验证
此状态将由验证文件的远程服务器上的工作人员 "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';