java - RxJava 结合最新调试

标签 java kotlin rx-java combinelatest

我正在使用 RxJava mergeLatest 运算符。

根据文档,订阅时,第一个组合发出事件仅在两个可观察对象发出这些值后才会发生,从这一点开始,它将在每个可观察对象的每次发出时发出。

我如何确定第一个可观察的发出事件已经发生并且现在等待第二个事件..

最佳答案

您可以将 doOnEach 用于 ObservablesFlowablesdoOnEvent 用于 SinglesCompletablesMaybes。这些操作的作用是每次从源发出一个项目时执行一些代码,然后再将信号传递给下游。它对于将调试/记录代码“注入(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/

相关文章:

java - Eclipse 未找到现有 Web 项目

c# - Java 中 C# IEnumerable 的等价物是什么?具有协变能力的,而不是可迭代的

android - 如何在 Jetpack Compose 中正确使用 StateFlow?

android - 如何在 Kotlin 中将数组转换为集合(HashSet)?

java - 如何使用 ConnectableObservable 预取然后将处理后的数据用于不同的订阅者

Java/没有适用于请求的设备型号的 Activity

java - 如何在安卓应用中显示日期选择器

java - Cassandra : Unable to find java executable

android - 无法将请求的类放入单个 dex 文件中(# methods : 90221 > 65536)

java - Rxjava - 当链接 observables 时如何取回其他类型的流(返回值)而不是当前?