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!