RxJava基本使用–常用的创建型操作符
创建Observable被观察者对象。
create()
使用者自己发射事件接收事件。
//上游
Observable.create(ObservableOnSubscribe<Int> { emitter ->
emitter.onNext(1)
})
.subscribe(
//下游
object : Observer<Int> {
override fun onComplete() {
}
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: Int) {
}
override fun onError(e: Throwable) {
}
})
just()
内部自己发射的,单一对象(对象类型相同)
//上游 发送1 2 3
Observable.just("1", "2", "3")
.subscribe(
//下游
object : Observer<String> {
override fun onComplete() {
}
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: String) {
}
override fun onError(e: Throwable) {
}
})
formArray()
内部自己发射的数组集合
val strs = arrayOf("1", "2", "3", "4")
Observable.fromArray(*strs)
.subscribe(object : Observer<String?> {
override fun onSubscribe(d: Disposable) {}
override fun onError(e: Throwable) {}
override fun onComplete() {}
override fun onNext(t: String) {
Log.e("==>","t==$t")
}
})
entry()
内部自己发射,下游默认是Object,无法发出有值事件,只会发射 onComplete()中接收
Observable.empty<Any>()
.subscribe(object : Observer<Any>{
override fun onComplete() {
}
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: Any) {
}
override fun onError(e: Throwable) {
}
})
range()
内部自己发射的,start 1 累加 count 5 。。 最后结果输出为:1 2 3 4 5
Observable.range(1,7)
.subscribe(object : Observer<Int>{
override fun onComplete() {
}
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: Int) {
}
override fun onError(e: Throwable) {
}
})