我正在使用RxJava CombineLatest运算符。
根据文档,在订阅时,只有在两个可观察对象都发出值之后才发生第一个合并发出事件,从这一点出发,它将在每个可观察对象的每次发出时发出。
我如何确定已发生第一个可观察到的发射事件,现在它正在等待第二个事件。
答案 0 :(得分:2)
您可以将doOnEach
用于Observables
和Flowables
,也可以将doOnEvent
用于Singles
,Completables
和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}