0
我有一种服务,每3秒从服务器获取数据。 有时服务器速度很慢,5或6秒后出现很多响应。 发生这种情况时,我的服务开始取消每个请求,而不是等待待处理的请求。 我该如何预防?Angular 2,轮询http请求并等待慢响应
public getCallDiagnostic():Observable<IRespWidgets>{
let body = JSON.stringify({manager:"CallDiagnosticServiceManager",
action:"GetCallDiagnostic",
WEB_USER_TOKEN:this._authenticationService.getUserToken()});
let options = new RequestOptions({headers: new Headers({'Content-Type': 'application/json'})});
return Observable.timer(0,3000)
.switchMap(()=>this._http.post(this._apiUrl,body,options))
.map(res => <IRespWidgets>res.json().data)
.catch(this.handleError);
}
非常感谢 只有当前一个到达时才发送请求的更好方法是什么? –
@KwintenP我可以这样做,就像我在这里所做的一样:http://plnkr.co/edit/6fBPFCus3HhZmCFBXFKq Ofcourse我只指的是每个请求应该等待前一个请求完成的要求 –
我不认为使用重复将允许您只在上一个完成时才开始执行下一个请求。 – KwintenP