[英]RxJava: How to prepend startWith() default emit EVERY TIME parent observable emits?
[英]RxJava tricky startWith(Observable)
以下代碼僅在observable2完成后才從observable1發出項目。
observable1.startWith(observable2)
.subscribe()
我需要實現另一種行為
observable1 -> 0 1 2 3
observable2 -> 1 2 3 4 5 6
observable1.startWithDefault(observable2)
-> 1 2 0 1 2 3
第二個可觀察對象僅在第一個可觀察對象為空時才發射項目,然后才發射第一個可觀察對象的項目。
我僅使用基本運算符找不到正確的解決方案,自定義運算符startWithDefault的正確RxJava 2實現應該是什么樣?
PS
observable1.subscribe()
observable2.takeUntil(observable1).subscribe()
由於比賽而無法觀察到的結果是不正確的解決方案
方向是好的,但是您需要publish(Function)
共享observable1
的信號,並且concatEager
不能在開關出現時從中丟失元素:
observable1.publish(o ->
Observable.concatEager(observable2.takeUntil(o), o)
)
.subscribe(...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.