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