0
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 저는 모든 요청이 완료 될 때까지 기다려야하는 요구 사항만을 말합니다. –
사용하지 않을 것이라고 생각합니다. repeat는 이전 요청이 끝나면 다음 요청을 시작하기 만합니다. – KwintenP