2016-12-14 30 views
1

RxJS允許使用onNext,onError,onComplete來訂閱源代碼。RxJS是否有辦法處理未被用戶捕獲的錯誤?

我正在尋找一種方法來構建一個允許用戶使用onError處理錯誤的observable,但是如果有未處理的錯誤,我可以顯示全局咆哮(來自primeng庫的通知)。

是否有一個很好的方式來捕捉未處理的訂閱錯誤。

Update1:​​ 我注意到Angular2有一箇中央ErrorHandler(模塊級)。問題是以某種方式將其附加到UI。 https://angular.io/docs/ts/latest/api/core/index/ErrorHandler-class.html

+0

'.catch'運算符可能嗎? –

回答

0

如果您沒有訂閱error事件,它會冒泡。你可以用try..catch封裝你的流來捕獲這些流,以防止你的應用程序崩潰。

try { 
    Rx.Observable.throw(new Error('not caught')).subscribe(); 
} 
catch(err) { 
    console.log('caught', err); 
} 
+0

來自異步源的錯誤怎麼樣?他們仍然沒有處理。 – cartant

+0

如果你有一個異步源,你需要確保你包裝/捕獲你的Rx流中的錯誤。否則try..catch將無助於 –

+0

謝謝你的答案,但這不完全是我想要的。我會更新我的問題。 –

相關問題