2017-03-22 2 views
1

이것이 rxjs의 버그인지 확실하지 않습니다. switchMap에서 관찰 가능한 오류를 반환 할 때 주 관찰 가능 오류는 발생하지 않습니다. https://plnkr.co/edit/f6dgGe3qvwX1Myn3PRfRrxjs : switchMap이 오류를 무시합니다

콘솔에 던져 오류가 없습니다 : 여기

export class AppComponent { 

    constructor() { 
     this.doStuff(); 
    } 

    doStuff() { 
     Observable.of('any observable').switchMap(() => { 
     return this.oops(); 
     }); 
    } 

    oops() { 
     return Observable.throw('doh'); 
    } 
} 

는 plunker이다. 왜 그런가요? 나는 switchMap가 Observable을 다른 것으로 '대체'한다고 생각 했습니까?

+0

만큼 당신이 가입하지 않는 오류가있을 수 없습니다 ... – n00dl3

답변

2

Observable chain은 구독 할 때까지 아무 것도하지 않습니다.

doStuff() { 
    Observable.of('any observable').switchMap(() => { 
    return this.oops(); 
    }).subscribe(); 
} 

oops() { 
    return Observable.throw('doh'); 
} 

참고 switchMap()의 프로젝션 함수가 예외를 던질 수 있고가 error 통지로 전송 될거야. 그래서 당신은 또한 단지 다음을 사용할 수 있으며, 결과는 동일합니다 :

oops() { 
    throw new Error('doh'); 
} 
+0

좋아 감사, 지금은 바보가 된 기분 ( – user2170547

관련 문제