[英]Behavior of ConnectableObservable in RxJava2?
我正在使用一個Observable myObs
,它發出一個且只有一個項目,並且永遠不會完成。 我想在不同時間將該項目共享給多個Subscriber
。
.replay(1)
會將源轉換為ConnectableObservable
。 因此,我應該能夠“預加載”緩存並通過以下方式接收Disposable:
ConnectableObservable myConnObs = myObs.replay(1);
Disposable mainDisposable = myConnObs.connect();
完成此操作后(甚至在此之前),任意數量的Subscriber
都應該能夠接收帶有
Disposable subDisp1 = myConnObs.subscribe();
Disposable subDisp2 = myConnObs.subscribe();
這些Subscriber
的每一個都應該能夠通過配置subDisp1
等來停止監聽,對嗎? 但是這樣做不會破壞mainDisposable
的連接,對嗎? 處置它應該從myObs
取消訂閱,而不管“ sub-subscriptions”的狀態如何,對嗎? 如果mainDisposable
對活動的Subscriber
會發生什么? 他們是否收到錯誤通知或其他任何內容(請記住myObs
從未發出已完成信號)?
正如@akarnokd解釋的那樣,來來往往的觀察者不會影響ConnectableObservable的連接。 處置連接不會向那些觀察者發出任何信號,通常建議您在處置可連接的連接之前先處置觀察者的連接。 通常可以通過將所有一次性物料托管在CompositeDisposable中並將其清除/處置來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.