Rx Observable -2-
4072 ワード
観測できるのは
ReactiveXでは,傍観者がObservableを購読している.傍観者は観測可能な1つまたは連続した項目に反応する.このモードは同期演算を可能にする.これは、あるオブジェクト(データ)が排出されると、観測可能なオブジェクト(データ)が排出されるのを待つ必要がなく、その時点を監視する観察者を傍観者に置き、その観察者を通じて排出通知を受信すればよいからである.
이 패턴을 Observer Pattern 이라고 하며, Reactive Programming은 이 Observer Pattern에 기반을 둔다.
Observable Marble diagram
ReactiveXは、デフォルトでは、Reactiveの通常のメソッド呼び出しではなく、非同期パラレル呼び出しメソッドと主に次のプロセスで行われます。
returnVal = someMethod(itsParameters)
非同期モデルでは、コードは次の手順で実行されます。
1.非同期メソッドが結果を呼び出し、必要なアクションを処理する方法を定義します.△この方法は傍観者の一部になる.
2.ObserverAbelを使用して非同期呼び出しを定義します.
3.サブスクリプションによって傍観者を観測対象にリンクする.(また、同時に観測可能な動作を初期化します.)
4.必要なコードの実装を続行します.メソッドが戻り結果を呼び出すたびに、ファイバのメソッドは戻り値または(Observerable除外)項目を使用して演算を開始します.
// 옵저버의 onNext 핸들러를 정의한다, 하지만 실행하지는 않는다
// (이 예제에서는, 단순히 옵저버에 onNext 핸들러만 구현한다.)
def myOnNext = {it -> /*필요한연산을 처리한다. */}
// Observable을 정의하지만, 역시 실행하지는 않는다
def myObservable = someObserbable(itsParameters)
//옵저버가 Observable을 구독한다. 그리고 Observable을 실행한다.
myObservable.subscribe(myOnNext)
//필요한 코드를 구현한다.
かんそくこうぞう
1.観測データはデータストリームを処理し、完了後にデータを発行する.
2.すべてのサブスクリプションの傍観者は、データの発行時にのみ通知を受け取る.
3.観察者は受信したデータを使って何でもする.
Subscribe
観測可能な測定がデータを発行し、イベントを送信する場合、観察者は観測可能な測定を購読することによってデータを消費する.実際には、Observerがデータストリームを定義して通知を発行した場合にのみ、ObserverはSubscribeを必要とし、データを発行および消費する.
表示可能なデータボリューム期間(onNext、onCompleted、onError)
Subscribe法により光ファイバと観測可能な接続を行った.
この方法はデータの公開通知をパラメータに渡し,パラメータは観測可能な排出項目である.
エラーが発生した通知、onNext、またはonCompletedは呼び出されません.onErrorメソッドは,エラーメッセージを格納したオブジェクトをパラメータとして渡す.
すべてのデータがパブリッシュされたことを通知し、onNextを呼び出した後にこのメソッドを呼び出します.
ObserverのSubscribe
Subscribeとは、受信したデータで取るべき行動を定義することである.
Disposable
dispose()は、Observerableにデータを送信しないようにサブスクリプションをキャンセルする関数です.
オブザーバ契約によれば、オブザーバ通知が発行されると、dispose()が自動的に呼び出され、オブザーバとサブスクライバの関係が切断される.
したがって、onCompleteイベントが正常に発生した場合、サブスクライバはdispose()を呼び出す必要はありません.
かんそくとくせい
JavaのFuturesは非同期の実行を支援します.しかし、多くの制約要因があるため、適切な流れを形成することは難しい.対照的に、Observerableは、非同期データの適切なストリームおよび順序を構成することができる.
Observableは、単純なスカラー値だけでなく、無限ストリームを順次発行することができる.いずれのエンクロージャでも使用できます.
観測可能性は,データソースがConcurrencyであるかAsynchronousであるかとは無関係である.観測性は、Thread-pool、Event Loop、Non-Blocking I/Oなど様々な方法で実現できる.
観測可能タイプ
RxJava 2とRxJava 3には、データソースを表すベースクラスが5つあります.
REFERENCE
Reference
この問題について(Rx Observable -2-), 我々は、より多くの情報をここで見つけました https://velog.io/@cloud0/Rx-Observable-2-テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol