android - Observable.concat(observable,observable) 的奇怪结果

标签 android kotlin rx-java reactive-programming rx-java2

一段时间后,我阅读了有关 RxJava concat 的内容,并决定测试一下我的理解力。但是我遇到了一些我不太理解的行为。

问题是,当我连接两个可观察对象时,根据我将它们传递给 Observable.concat() 的顺序,我会得到不同的行为

val ob1 = createObservableSomehow()

val ob2 = createObservableSomehow()

Observable.concat(ob1,ob2).subscribe(::println) //only prints emissions of ob1


Observable.concat(ob2,ob1).subscribe(...) //concats all emissions correctly

请参阅随附的屏幕截图,了解如何创建这两个可观察对象。 This screenshot shows how am creating the observables

最佳答案

concat()将等待第一个流完成,然后它才会开始从第二个流中发射项目。

在您的情况下,您声明第一个可观察对象已完成发射,因此 concat()假设仍然有排放,因为从来没有调度过终端事件。

只要在第一个流中执行 it.onComplete(),您就会看到预期的输出。

关于android - Observable.concat(observable,observable) 的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48670472/

相关文章:

android - Salesforce MobileSDK : The Rest API is not enabled for this Organization

android - 未找到 DefaultActivityViewModelFactory

rx-java - RxJava 2 相当于 isUnsubscribed

android - https ://dl. bintray.com/kotlin/kotlin-eap 502 网关错误

android - 评论中的 Kotlin 分界线不起作用

rx-java - 惰性随机生成器可观察

android - Rxjava AndroidSchedulers.mainThread() 表示 UI 线程?

android - 是否可以使用 google cardboard API 来创建原生 Android 应用程序?

php - 如何将数据从sqlite发送到MYSQL

android - 如何捕捉到水平 RecyclerView 中 LinearSnapHelper 的特定位置?