2017-04-15 38 views
0

我使用BehaviorSubject從不同來源生成事件流。 得到簡化,它看起來像:如何繞過完成

BehaviorSubject subject = BehaviorSubject.create(); 
Observable<Integer> src1 = Observable.just(1, 2, 3); 
Observable<Integer> src2 = Observable.just(4, 5, 6); 
Observable<Integer> src3 = Observable.just(7, 8, 9); 
src1.subscribe(subject); 
src2.subscribe(subject); 
src3.subscribe(subject); 
subject.subscribe(this::log); 

在從src1僅會記錄這個例子值,因爲src1完成後,沒有更多的主題訂閱將存在。

我怎麼能繞過來自所有來源的完成事件?有沒有像ignoreCompleted()這樣的運營商?

+0

爲什麼要用除合併事件流時,你可以簡單地使用合併操作? – JohnWowUs

+0

因爲我有很多主題的訂閱者。即我與許多訂閱者分享流。 – Alexey

回答

0

使用此,它忽略的onComplete()和onerror的():https://github.com/JakeWharton/RxRelay

+0

更簡單的是在Subscription中包裝主題,只調用subject.onNext()(我懷疑這個庫完全是這樣做的)。無論如何,會嘗試一下,謝謝! – Alexey