一段时间后,我阅读了有关 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
最佳答案
concat()
将等待第一个流完成,然后它才会开始从第二个流中发射项目。
在您的情况下,您未声明第一个可观察对象已完成发射,因此 concat()
假设仍然有排放,因为从来没有调度过终端事件。
只要在第一个流中执行 it.onComplete()
,您就会看到预期的输出。
关于android - Observable.concat(observable,observable) 的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48670472/