У меня есть служба, которая получает данные с сервера каждые 3 секунды. Иногда сервер работает очень медленно, и многие ответы появляются через 5 или 6 секунд. Когда это произойдет, моя служба начинает отменять каждый запрос, а не ждать ожидающего. Как я могу предотвратить это?Угловой 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