Kotlin 订阅链中的可观察对象并将观察者设置为可观察对象

Kotlin 订阅链中的可观察对象并将观察者设置为可观察对象,kotlin,rx-java2,Kotlin,Rx Java2,我有下面的代码片段。我想知道使用链接到flatmap末尾的subscribe并打印结果或创建观察者并订阅可观察对象有什么区别 出于某种原因,我希望得到同样的结果。但当我在onNext中打印结果时,它会显示完整的已发射项 然而,对于订阅上的链接,它显示了我所期望的内容 kotlin 1.2.60 rxJava 2 来自onNext: 521934 2342 FOXTROT 21962 12112 78886 TANGO 283242 4542 WHISKEY 2348562 source2是一

我有下面的代码片段。我想知道使用链接到flatmap末尾的subscribe并打印结果或创建观察者并订阅可观察对象有什么区别

出于某种原因,我希望得到同样的结果。但当我在onNext中打印结果时,它会显示完整的已发射项

然而,对于订阅上的链接,它显示了我所期望的内容

kotlin 1.2.60
rxJava 2
来自onNext:

521934
2342
FOXTROT
21962
12112
78886
TANGO
283242
4542
WHISKEY
2348562

source2是一个不可变的集合。你观察了两次。您应该在一个新变量中捕获flatmap的结果,然后观察它

521934/2342/FOXTROT
21962/12112/78886/TANGO
283242/4542/WHISKEY/2348562
fun main(args:Array){
val source2=可观察的。just(“521934/2342/狐步舞”,“21962/12112/78886/探戈”,“283242/4542/威士忌/2348562”)
val source3=source2.flatMap{
Observable.fromArray(*it.split(“/”).toTypedArray()
}
source3.subscribe{println(it)}
val observer=对象:observer{
覆盖有趣的onComplete(){
}
覆盖订阅的乐趣(d:一次性){
}
覆盖文本(t:字符串){
println(t)
}
覆盖有趣的错误(e:可丢弃){
}
}
source3.订阅(观察员)
}
521934/2342/FOXTROT
21962/12112/78886/TANGO
283242/4542/WHISKEY/2348562
fun main(args: Array<String>) {
    val source2 = Observable.just("521934/2342/FOXTROT", "21962/12112/78886/TANGO", "283242/4542/WHISKEY/2348562")

    val source3 = source2.flatMap {
        Observable.fromArray(*it.split("/").toTypedArray())
    }
    source3.subscribe { println(it) }

    val observer = object : Observer<String> {
        override fun onComplete() {
        }

        override fun onSubscribe(d: Disposable) {
        }

        override fun onNext(t: String) {
            println(t)
        }

        override fun onError(e: Throwable) {
        }
    }

    source3.subscribe(observer)
}