Rxjava创造操作符

rxjava 操作符kotlin 语法练习

参考 :https://github.com/ReactiveX/RxJava/

依赖

    implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
    implementation 'io.reactivex.rxjava2:rxjava:2.2.9'

经常会使用的固定式语句

1、异步订阅观察者 (切换到子线程)

  .subscribeOn(Schedulers.io())

2、排放到主线程执行

 .observeOn(AndroidSchedulers.mainThread())

3、订阅一个可被观察资源

.subscribe()

Observable的创建操作符

1、create   创建新的Observable实例

 Observable.create<Any> {
            it.onNext("创建一个可被观察的对象")
        }.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe {
                    println(it)
                }

2、just 发出每个项目的可观察对象

 Observable.just("1", "2", 5, 8, Any())
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe {
                    println(it.toString())
                }

3、dafer     ObservableSource工厂函数   ,返回一个Observable,该Observable调用一个ObservableSource工厂来为每个新的Observer创建一个ObservableSource

   Observable.defer(object : Callable<Observable<String>> {
            override fun call(): Observable<String> {
                return Observable.create { it.onNext("haodada") }
            }
        }).subscribe {
            pprintln(it.toString())
        }

4、fromArray 一个发出源数组中的每个项的可观察对象

 Observable.fromArray("1", 5, 9, "5")
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe {
                    println(it.toString())
                }

5、fromFuture   将{ Future}转换为ObservableSource。 

        var task = FutureTask(Callable<String> {
            "task ${Thread.currentThread().id}"
        })
        Observable.fromFuture(task)
            .subscribe({ s: String? -> pprintln(" onNext : ${s}") },
                { o: Throwable? -> pprintln(" one rror : ${o}") },
                { pprintln(" onComplete!!") },
                { disposable: Disposable? ->
                    pprintln(" onSubscribe!!")
                    task.run()
                })

 6、fromIterable  将{ 集合}转换为ObservableSource。 

  var array = arrayListOf(1, 2, 2, 5, 6, 6, 9)
        Observable.fromIterable(array)
            .subscribe {
                pprintln(it.toString())
            }

7、range  它发出指定范围内的一系列整数

    
        Observable.range(200,1000).subscribe {
            pprintln(it.toString())
        }

上一篇:面试之Java基础


下一篇:LinkedList源码中为何大量出现final