Rx java总结 一

2020-01-07  本文已影响0人  18岁的编程少年

内容参考 吴小龙rxjava,非常感谢龙同学给出这么优质的内容参考,由于他很早之前就已经编写,使用的java来演示的,本文都是以kotlin 的语法跟大家演示的,但是主体的内容未发生改变,再次感谢吴小龙

关于概念我就不再赘述... 网上太多了

这是我使用架包的版本


implementation 'io.reactivex.rxjava2:rxjava:2.2.10'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'

观察者模式


RxJava的世界里,我们有四种角色:
Observable(被观察者)、Observer(观察者)
Subscriber(订阅者)、Subject
Observable和Subject是两个“生产”实体,Observer和Subscriber是两个“消费”实体。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer。

回调方法


Subscribe方法用于将观察者连接到Observable,你的观察者需要实现以下方法:

创建操作 create

create(ObservableOnSubscribe<String> { emitter ->
            emitter.onNext("Hello")
            emitter.onNext("Rxjava")
            emitter.onComplete()
        }).observeOn(Schedulers.io())
            .subscribeOn(AndroidSchedulers.mainThread())
            .subscribe({
                Log.d("RxjavaStu", it)
            }, {}, {
                Log.d("RxjavaStu", "onCompleted")
            })

打印的结果


com.example.rxjavastu D/RxjavaStu: Hello
com.example.rxjavastu D/RxjavaStu: Rxjava
com.example.rxjavastu D/RxjavaStu: onCompleted

just


just函数,它接受一至九个参数,返回一个按参数列表顺序发射这些数据的Observable。

just("Hello", "RxJava")
      .subscribe { 
          Log.d("RxjavaStu", it)
      }           

打印的结果


  com.example.rxjavastu D/RxjavaStu: Hello
  com.example.rxjavastu D/RxjavaStu: RxJava

变换操作 Map


操作符对原始Observable发射的每一项数据应用一个你选择的函数,然后返回一个发射这些结果。
如下,将原始Observable数据转化成大写,再发射:

just("Hello", "RxJava")
                .map {
                    it.toUpperCase()
                }
                .subscribe {
                    Log.d("RxjavaStu", it)
                }

打印的结果


com.example.rxjavastu D/RxjavaStu: HELLO
com.example.rxjavastu D/RxjavaStu: RXJAVA

fromArray

它和just有着相同的功能,都是接受数据源并创建一个被观察者对象。不同的是fromArray可以接受可变长参数对象(其实就是一个数组),它会把数组中的每个元素发射出来

fromArray("Hello", "RxJava")
                .subscribe {
                    Log.d("RxjavaStu", it)
                }

点击跳转下一章 总结二

上一篇下一篇

猜你喜欢

热点阅读