2017-09-28 6 views
1

입력을 관찰하는 각도 4의 관찰 가능 항목이 있고 xhr 요청을 실행하는 서비스 인 url 호출을 탐지하면이를 감지합니다. 내가 쓰는 경우 XHR은 입력의 관찰 200을 반환각도 4. XHR 요청의 오류로 인해 연결된 관측 가능치가 중지됨

Observable.fromEvent(this._elementRef.nativeElement, 'input') 
    .debounceTime(500) 
    .map((res: any) => { return res.target.value }) 
    .distinctUntilChanged() 
    .map((res: string) => String(res.match(this.regExpUrl))) 
    .distinctUntilChanged() 
    .filter(res => res ? true : false) 
    .switchMap(this.serviceThatReturnAObservableOfAXHRRequest)) 
    .subscribe(response => console.log(response), 
    err => console.log(err)); 

작업을 계속하고 I는 입력에 쓰기 다른 URL의 수 수 있지만 오류를 반환 할 때 입력의 관찰은 작업을 중지하고 입력의 일부는 결코 관측 가능을 다시 통과하지 못합니다.

왜 요청에 의해 던져지고 구독에 캐치 된 오류가 입력 관찰 가능을 깨뜨릴 수 있고 언제 성공하지 못했는지 알 수 있습니다.

답변

0

올바른 동작입니다. 예를 들어 catch(() => Observable.of())을 사용하여 오류를 무시하거나 catch(err => Observable.of(err))next 항목으로 설정하거나 retry()으로 변경하여 Observable 소스에 자동으로 다시 등록 할 수 있습니다.

각도가 http 인 서비스를 사용하고 있기 때문에 모든 2XX이 자동으로 오류라고 생각합니다.

비슷한 질문 :

+0

나는 오류를 처리하고-suscribe을 다시 시도하는 캐치를 사용하고 난 예상 동작을 가지고있다. 감사. –

관련 문제