【发布时间】:2018-09-12 17:24:41
【问题描述】:
我有一个客户端 API,我想轮询它直到它返回成功结果,这个 API 返回一个带有以下 JSON 的响应。
{
"count": 0,
"meta": {
"status": "PENDING",
"total": 3185,
"completion_percentage": 0,
"total_available": 0,
"hotels_filtered": 0,
"offers": 0
},
data:[]
}
一个肯定的结果应该包含 status ='COMPLETED' 并且数据字段将包含数据中的结果,我尝试使用 takeWhile from 'rxjs'
组件.ts
var headers = { headers: new HttpHeaders({ 'x-user-agent':'M;B2B' }) };
var url='https://api.xyz.com/hotels/v1/search/entity/27548283?apikey=1234567'
this.http.get(url,headers)
.pipe(
takeWhile((data)=>JSON.parse(JSON.stringify(data)).meta.status==='COMPLETED')
)
.subscribe((result)=>{
console.log(result);
},(err)=>{
console.log(err);
})
但不幸的是,我没有得到任何订阅日志方法, 这是正确的方法吗?
我的角度版本是 6。
【问题讨论】:
标签: angular rxjs angular6 polling