Single 了解一下

今天的主题是什么呢,了解一下!这里有很多不同风格的Observable,比如Single,Maybe,Completable.这是使用都和Observable.create 都有很多相似的地方,也会返回相应的Observable

Single

就是只发送一个item,其他得和一般的Observable 是一样的,单独接口SingleObserver,所以当只有一个东西需要发送,而不是一连串的东西的时候,就可以考虑就使用Single

  Single.just("hhh").filter { it.length > 1 }.map { it.length }.subscribe {
            println("this num is $it")
  }

maybe

和single 类似,但是maybe可以允许空的情况,但是具体为什么做这个,还不太清楚

 Maybe.just(100).subscribe {
            println("this is $it")
        }
        var may: Maybe<String> = Maybe.empty()
        var obser: MaybeObserver<String> = object : MaybeObserver<String> {
            override fun onSuccess(t: String) {
                println("This is on success.")
            }

            override fun onComplete() {
                println("this is complete.")
            }

            override fun onSubscribe(d: Disposable) {
            }

            override fun onError(e: Throwable) {
            }

        }
        may.subscribe(obser)

        Observable.just("A","B").firstElement().subscribe{
            println("This is $it")
        }

completable

只是执行completed 不会执行onNext 方法

 Completable.fromRunnable {
            println("Welcome to our runnable.")
        }.subscribe { println("It was done,do you know!") }

为什么要这几个,就是为了适应各种需求,其实感觉普通的observable都能实现的,如果是普通的开发者的话,就将就用了,还考虑啥,see you again!

results matching ""

    No results matching ""