2017-03-22 4 views
1

これはrxjsのバグかどうか不明ですが、何か不足しています。 switchMapで観測可能なエラーを返すとき、エラーはメインの観測対象によってスローされません。ここでrxjs:switchMapはエラーを無視します

export class AppComponent { 

    constructor() { 
     this.doStuff(); 
    } 

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

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

はplunkerです:コンソールでスローエラーがhttps://plnkr.co/edit/f6dgGe3qvwX1Myn3PRfR

はありません。何故ですか?私はswitchMapがObservableを別のものに「置き換える」と思ったのですか?

+0

限り、あなたは...今私は愚かな感じ – n00dl3

答えて

2

Observableチェーンは、購読するまで何もしません。

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

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

switchMap()用の投影機能が例外を投げることができるし、それがerror通知として送信されますことに注意してください。だから、あなたはまた、単に次のように使用することができ、結果は同じになります。

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

[OK]を感謝し、加入していないとエラーが発生することはできません。( – user2170547

関連する問題