總之: 如何在流錯誤後繼續收聽,而不是在每.subscribe
之前加上.catch
?爲什麼Rxjs錯誤地取消訂閱?
如果您需要更多的細節他們在這裏:
讓我們假設我有當前用戶或空的主題。我有時從API獲取數據併發送給主題。它相應地更新視圖。 但是,在某些時候,我的服務器上發生錯誤,我希望我的應用程序繼續像以前一樣工作,但通知某些地方有關該錯誤並保持聆聽我的主題。
最初我以爲如果我只是做userSubject.error(...)
它只會觸發.catch
回調和error
處理器上的訂閱,並跳過所有成功的處理程序和鏈。 如果我打電話userSubject.next(...)
後我所有的連鎖店和訂戶將像以前一樣工作
但是不幸的是情況並非如此。在第一個未被捕獲的.error
之後,它將訂閱者從流中取消訂閱,並且它們不再運行。
所以我的問題:爲什麼? 如果我想正常處理null
值,但是也只能在某些地方處理錯誤,我該怎麼辦?
這裏是鏈接到RxJs源代碼中的錯誤認購退訂 https://github.com/ReactiveX/rxjs/blob/master/src/Subscriber.ts#L140
明白謝謝! – mgrinko