代码之家  ›  专栏  ›  技术社区  ›  ant2009

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

  •  1
  • ant2009  · 技术社区  · 8 年前
    kotlin 1.2.60
    rxJava 2
    

    我有下面的代码片段。我想知道,使用链接到flatmap末尾的subscribe并打印结果,或者创建一个observator并订阅observate有什么区别。

    然而,对于subscribe上的chained,它显示了我所期望的内容。

    fun main(args: Array<String>) {
        val source2 = Observable.just("521934/2342/FOXTROT", "21962/12112/78886/TANGO", "283242/4542/WHISKEY/2348562")
    
        source2.flatMap {
            Observable.fromArray(*it.split("/").toTypedArray())
        }
        .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) {
            }
        }
    
        source2.subscribe(observer)
    }
    

    输出如下: 从链接订阅:

    521934
    2342
    FOXTROT
    21962
    12112
    78886
    TANGO
    283242
    4542
    WHISKEY
    2348562
    

    从onNext:

    521934/2342/FOXTROT
    21962/12112/78886/TANGO
    283242/4542/WHISKEY/2348562
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   CPerson    8 年前

    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)
    }