我正在使用 RxJava combineLatest 运算符。
根据文档,在订阅时,第一个 combine emit 事件只会在两个 observable 发出值之后发生,并且从这一点开始,它会在每个 Observable 的每次发出时发出。
我如何确定第一个可观察的发射事件已经发生,它现在等待第二个..
我正在使用 RxJava combineLatest 运算符。
根据文档,在订阅时,第一个 combine emit 事件只会在两个 observable 发出值之后发生,并且从这一点开始,它会在每个 Observable 的每次发出时发出。
我如何确定第一个可观察的发射事件已经发生,它现在等待第二个..
您可以使用doOnEach
forObservables
和Flowables
或doOnEvent
for Singles
, Completables
and Maybes
。这些操作所做的是每次在将信号向下传递之前从源发出项目时执行一些代码。这对于将调试/记录代码“注入”到 RX 流中非常有用。
见:https ://proandroiddev.com/briefly-about-rxjava-logging-20308b013e6d
编辑:
val a = BehaviorSubject.create<Int>().apply {
onNext(1)
}.doOnEach { EventReporter.d(TAG, it.value?.toString() ?: "") }
val b = BehaviorSubject.create<Int>().apply {
onNext(2)
}.doOnEach { EventReporter.d(TAG, it.value?.toString() ?: "") }
Observable.combineLatest(listOf(a, b), { args: Collection<Int> -> args}