kotlinのメモです。
1653 views
生産者を意味するのがFlowable。
購読者を意味するのがsubscribe。
プロトコル | 説明 |
---|---|
onSubscribe | 通知の準備ができたことの通知 |
onNext | データの通知 |
onError | エラー(異常終了)の通知 |
onComplete | 完了(正常終了)の通知 |
インターフェース | 説明 |
---|---|
Publisher | データを生産し通知する役割りを持つインターフェース |
Subscriber | 通知されたデータを受け取り処理を行うインターフェース |
SubScription | データ数のリクエストおよび購読の解除を行えるインターフェース |
Processor | PublisherとSubscriberの両方の性質を持つインターフェース |
Subscriptionの処理がSubscriberの外部から呼ばれない前提で行っているためできる実装。
外部から購読解除を行うような仕組みを提供している場合は、Subscriptionが非同期で呼ばれても問題ないようにする必要がある。
ProcessorはReactiveStreamsにだけあるインターフェース。
生産者 | 消費者 | |
---|---|---|
Streams対応あり | Flowable | Subscriber |
Streams対応なし | Observable | Observer |
Stream対応なしの場合、バックプレッシャーの機能がなく、データ数のリクエストは行わない。
また、Subscriptionは使わず、Disposableという購読解除のメソッドを持つインターフェースを使います。
メソッド | 説明 |
---|---|
dispose() | 購読を解除する |
isDisposed() | 購読を解除している場合はtrue、解除していない場合はfalseを返す |
RxJavaでは生産者(observer)が通知したデータが消費者(Subscriber)に届くまでに、不要なデータを破棄したり、データを消費者で使いやすいように変換したりと通知のデータを操作することがある。
この際に使用するメソッドはObservableのメソッドから新たなObservableヲ返す作りになっており、このメソッドをつなげていくことで、最終的なデータを通知するObserbableを生成する。
ようするにメソッドチェーン。
RxJavaはデータを通知する側の処理ハンチとデータを受け取る側の処理範囲を分断できる設計になっているっために、それぞれの処理を別スレッドで行えるようになっている。
Rxjavaでは、開発者が直接スレッドを管理しなくても良いように、書く処理の用途に合ったスレッド管理を行うSchedulerを用意している。
Completableはデータを通知することなく完了を通知するか、もしくはエラーを通知するクラス。
DBのレコードのインサートや更新などに使う。
emitterのonSuccessを呼ぶと一回だけObserver(Subscriber)のonSuccessが呼ばれます。(itemが一個だけemitされます。)複数回onSuccessを呼んでも一回だけしか呼ばれません。
onCompleteメソッドはないです。
つまり、onSuccessは引数が必要なので、何もアイテムを流さずにonCompleteメソッドを呼んだりできません。
fromCallbleメソッドを使って呼び出されるとシステム時間を取得するCallableからデータを取得し、それを通知する。
Page 17 of 36.
マッスル
本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。
https://www.osumoi-stdio.com/pyarticle/