Single, Complete, Maybe, Observableの使い分け
名前 | 説明 | 使えるメソッド |
---|---|---|
Single | 値1つ | onSuccess(a: Any)/ onError(e: Throwable) |
Complete | 値なし | onComplete()/ onEroor(e: Throwable) |
Maybe | 値1つor 値なし | onSuccess(a: Any)/ onError(e: Throwable)/ onComplete() |
Observable | 値たくさん | onNext(a: Any)/ onError(e: Throwable)/ onComplete() |
Observable, Flowable, Subject, Processor使い分け
BackPressureなし | BackPressureあり | |
---|---|---|
-able; 購読される | Observable | Flowable |
-er; 購読する | Observer | Observer |
-erであり、-ableでもある; 購読することも、されることもできる | Subject | Processor |
FlowableはObservableの進化系。
Flowableは、BackPressureなるものを調整して、onNestででてくるデータのスピード調整などができる。
Subect, Processorは、それぞれObservable, Flowableの進化系。
subscribeすることもできるし、subscriberとしてobserveすることもできる。
参考文献
-
RxJava2.0 Observable, Single, Maybe, Completableの使い分けメモ
https://qiita.com/takahirom/items/f3e576e91b219c7239e7 -
Understanding RxJava Subject — Publish, Replay, Behavior and Async Subject
https://blog.mindorks.com/understanding-rxjava-subject-publish-replay-behavior-and-async-subject-224d663d452f -
RxJavaで安全にイベント通知を行うためのRxRelay
https://qiita.com/kakajika/items/0db64ec6de370d0613f1 -
Rxで知っておくと便利なSubjectたち
https://qiita.com/ralph/items/f7205c8171826cc2153b#serializedsubject