RxJava使用總結

一. 執行順序:

1. 先執行doOnSubscribe(), 當有多個doOnSubscribe()方法時,則由下至上的順序執行,其執行所在線程由其後面的subscribeOn()來指定;若沒有subscribeOn()指定,則執行的線程和本身所在線程一致。

2. 再執行observable.create()裏的call()方法,其執行所在線程由其後面的subscribeOn()來指定;若沒有subscribeOn()指定,則執行的線程和本身所在線程一致。

3.再執行doOnNext(),其執行所在線程由其前面的observeOn()來指定, 若沒有observeOn()指定,則執行的線程和observable.create()裏的call()所在線程一致。並不改變數據流。

4. 如果觸發onError()且有doOnError()則先執行 doOnError()。

5. 最後執行subscribe()裏的onNext(), onError(), onComplete(),其執行所在線程由其前面的observeOn()來指定, 若沒有observeOn()指定,則執行的線程和observable.create()裏的call()所在線程一致。


二. observable產生的幾種方式:

1. create

2. just(<T>, <T>, ...)

3. from(List<T>)

4. ...


三. observable的幾種變種:

1. single: 只發射1個數據源

2. flowable:可發射0-N個數據源,支持背壓(與observable唯一的區別)

3. completable:不發射數據源

4. maybe:發射0/1個數據源


四. subscribe()裏可以的參數

1. subscribe(observer)

2. subscribe(onNextConsumer)

3. subscribe(onNextConsumer, onErrorConsumer)

4. subscribe(onNextConsumer, onErrorConsumer, onCompleteConsumer)


五.subscribeOn和observeOn

1. subscribeOn 作用於該操作符之前的 Observable 的創建操符作以及 doOnSubscribe 操作符 ,換句話說就是 doOnSubscribe 以及 Observable 的創建操作符總是被其之後最近的 subscribeOn 控制 。

2. observeOn作用於該操作符之後操作符直到出現新的observeOn操作符

詳見http://blog.csdn.net/xx326664162/article/details/51967967


六. 操作符

1. flatMap 很重要的一個用途就是用來解決嵌套網絡請求,observable1網絡請求完成之後,再次發射數據observable2網絡請求

2. map 只是在數據流上改變了數據的值,繼續往前走,本身並不發射數據

3. http://blog.csdn.net/u014099894/article/details/51626670


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章