我正在使用 RxJava mergeLatest 运算符。
根据文档,订阅时,第一个组合发出事件仅在两个可观察对象发出这些值后才会发生,从这一点开始,它将在每个可观察对象的每次发出时发出。
我如何确定第一个可观察的发出事件已经发生并且现在等待第二个事件..
最佳答案
您可以将 doOnEach
用于 Observables
和 Flowables
或 doOnEvent
用于 Singles
、Completables
和 Maybes
。这些操作的作用是每次从源发出一个项目时执行一些代码,然后再将信号传递给下游。它对于将调试/记录代码“注入(inject)”到 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}
关于java - RxJava 结合最新调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52985471/