簡體   English   中英

RxJava2中ConnectableObservable的行為?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM