我使用的是RxJava combineLatest操作符。
根据文档,当订阅时,第一次组合发射事件只有在两个可观测值发出值之后才会发生,并且从这一点开始,它将在每个可观测值的每个发射点上发出。
如何确定第一个可观测的发射事件已经发生,现在它正在等待第二个事件。
发布于 2018-10-25 09:12:40
您可以使用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}https://stackoverflow.com/questions/52985471
复制相似问题