【发布时间】:2017-11-07 13:42:41
【问题描述】:
我认为问题很简单,但是我无法自行修复此代码。
我有一项服务正在执行一些 GET 请求。 GET 通常返回 200,但有时会返回 410。
我想每隔一段时间(例如每秒)发出一次请求。 问题是当我为此使用可观察机制时,它首先失败“410”,然后在控制台上无限返回 410。
我的服务代码:
getStatistic(){
var headers = new Headers();
headers.append("Content-Type", "application/x-www-form-urlencoded");
var options = new RequestOptions({headers: headers});
return this.http.get('http://localhost:8080/resource',options)
.retryWhen(errors => errors.delay(5000))
.map(
(response:Response) => {
return response.json();
}
)
}
handleError(error:any){
if(error.status === 404){
return Observable.of(false)
}else if(error.status===410){
return Observable.throw({code:error.status, msg:error._body})
}else{
return Observable.of(false)
}
}
还有 Observable:
var observable = TimerObservable.create(5000, 1000)
.takeWhile(() => true)
.subscribe(() => {
this.statisticService.getStatistic()
.subscribe(
(data) => {
console.log("data",data)
},
(err) => {
console.log("err",err)
}
);
},error2 => console.log("error"));
响应是这样的: 200 200 200 200 410
【问题讨论】:
标签: angular rxjs observable angular2-services