RxJava學習(10):複用與join
前言
根據Froussios英文版的學習筆記。
開發的時候,發現流的轉換等部分操作一模一樣,此時該如何複用呢?如果發現流的訂閱部分操作一模一樣,此時又該如何呢?
一、compose與lift
compose轉換一個observable為另一個observable,但是lift則是對Subscriber進行更改。
public <R> Observable<R> compose(Observable.Transformer<? super T,? extends R> transformer)
public final <R> Observable<R> lift(ObservableOperator<? extends R, ? super T> lifter)
@Test
public void a() {
Observable.just(1).compose(transform()).subscribe(System.out::println);
Observable.just(2).lift(operator()).subscribe(System.out::println);
}
@NonNull
private ObservableTransformer<Integer, String> transform() {
return upstream -> upstream.map(integer -> "我是第" + integer + "名");
}
@NonNull
private ObservableOperator<String, Integer> operator() {
return observer -> new Observer<Integer>(){
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Integer integer) {
observer.onNext("我是第" + integer + "名");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
};
}
schedulers
- immediate :當前執行緒立刻開始
- trampoline:當前執行緒按照佇列順序執行
- newThread :每一個work新建一個執行緒
- computation:CPU工作
- io:IO操作
join
join和zip的區別
zip按順序結合兩個或多個Observables發射的資料項,然後它發射這個函式返回的結果。它按照嚴格的順序應用這個函式。它只發射與發射資料項最少的那個Observable一樣多的資料。
join則是在任何時候,只要在另一個Observable發射的資料定義的時間視窗內,這個Observable發射了一條資料,就結合兩個Observable發射的資料。
相關文章
- RxJava2 學習(一)RxJava
- RxJava2 學習(二)RxJava
- 大話RxJava:一、初識RxJava與基本運用RxJava
- mysql left join 優化學習MySql優化
- Android RxJava:這是一份RxJava使用入門學習指南AndroidRxJava
- RxJava 學習筆記 -- 基礎知識RxJava筆記
- RxJava2操作符學習筆記RxJava筆記
- RxJava 學習筆記 -- 變換操作符RxJava筆記
- RxJava 學習筆記 -- 過濾操作符RxJava筆記
- 神經網路與深度學習 課程複習總結神經網路深度學習
- RxJava練武場之——Observable網路框架的解耦和複用RxJava框架解耦
- 《ASP.NET開發與應用實踐》例題複習用ASP.NET
- Java IO學習筆記六:NIO到多路複用Java筆記
- RxJava2.X 學習筆記 -- 建立操作符RxJava筆記
- Scala程式碼練習(複習用)
- CSS學習-Flex佈局複習CSSFlex
- 網路程式設計學習——Linux epoll多路複用模型程式設計Linux模型
- 10章 RxJava原始碼分析RxJava原始碼
- 密碼學期末複習密碼學
- 大學物理期末複習
- [密碼學複習]Cryptography密碼學
- REACT元件抽象與複用React元件抽象
- OkHttp+Retrofit+Dagger2+RxJava+MVP架構 學習筆記HTTPRxJavaMVP架構筆記
- 深度學習的應用與實踐深度學習
- 強化學習之原理與應用強化學習
- join()方法的神奇用處與Intern機制的軟肋
- 資料結構與演算法學習-複雜度分析資料結構演算法複雜度
- 材料力學複習總結
- MongoDB學習之複製集MongoDB
- join、inner join、left join、right join、outer join的區別
- 為了學習Rxjava,年輕小夥竟作出這種事!RxJava
- 如何學習RxJava3?有這個專案就夠了!RxJava
- xBIM學習與應用01 xBIM簡介
- 【深度學習】機率論知識複習深度學習
- XTask與RxJava的使用比較RxJava
- 用 docker 學習 redis 主從複製2 主從同步的offsetDockerRedis主從同步
- 用 docker 學習 redis 主從複製3 redis-sentinel(哨兵模式)DockerRedis模式
- 計網期末複習-應用層