Rx Observable -2-


観測できるのは


ReactiveXでは,傍観者がObservableを購読している.傍観者は観測可能な1つまたは連続した項目に反応する.このモードは同期演算を可能にする.これは、あるオブジェクト(データ)が排出されると、観測可能なオブジェクト(データ)が排出されるのを待つ必要がなく、その時点を監視する観察者を傍観者に置き、その観察者を通じて排出通知を受信すればよいからである.
이 패턴을 Observer Pattern 이라고 하며, Reactive Programming은 이 Observer Pattern에 기반을 둔다.

Observable Marble diagram



ReactiveXは、デフォルトでは、Reactiveの通常のメソッド呼び出しではなく、非同期パラレル呼び出しメソッドと主に次のプロセスで行われます。

  • メソッドが呼び出されます.
  • メソッドで返される値は、変数に格納されます.
  • 値付き変数処理に必要な演算.
  • あるいは、このように表現します.
  • メソッドを呼び出し、戻り値を「returnVal」に割り当てます.
  •     returnVal = someMethod(itsParameters)
  • でValに戻って必要な作業を行います.
  • 非同期モデルでは、コードは次の手順で実行されます。


    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
    この方法はデータの公開通知をパラメータに渡し,パラメータは観測可能な排出項目である.
  • onError
    エラーが発生した通知、onNext、またはonCompletedは呼び出されません.onErrorメソッドは,エラーメッセージを格納したオブジェクトをパラメータとして渡す.
  • onCompleted
    すべてのデータがパブリッシュされたことを通知し、onNextを呼び出した後にこのメソッドを呼び出します.
  • ObserverのSubscribe


    Subscribeとは、受信したデータで取るべき行動を定義することである.

    Disposable


    dispose()は、Observerableにデータを送信しないようにサブスクリプションをキャンセルする関数です.
    オブザーバ契約によれば、オブザーバ通知が発行されると、dispose()が自動的に呼び出され、オブザーバとサブスクライバの関係が切断される.
    したがって、onCompleteイベントが正常に発生した場合、サブスクライバはdispose()を呼び出す必要はありません.

    かんそくとくせい

  • Observables Are Composable
    JavaのFuturesは非同期の実行を支援します.しかし、多くの制約要因があるため、適切な流れを形成することは難しい.対照的に、Observerableは、非同期データの適切なストリームおよび順序を構成することができる.
  • Observables Are Flexible
    Observableは、単純なスカラー値だけでなく、無限ストリームを順次発行することができる.いずれのエンクロージャでも使用できます.
  • Observables Are Less Opinionated
    観測可能性は,データソースがConcurrencyであるかAsynchronousであるかとは無関係である.観測性は、Thread-pool、Event Loop、Non-Blocking I/Oなど様々な方法で実現できる.
  • 観測可能タイプ


    RxJava 2とRxJava 3には、データソースを表すベースクラスが5つあります.
  • 観測不可:最も基本的な形式、0からN個のデータボリューム、バックアップなし
  • 単一ポイント:単一データ、またはエラー
  • Completable:成功または失敗の結果のみをパブリッシュ
  • Maybe:0個または1個で完了、エラー
  • Flowable:0からN個のデータボリューム;BackPressureは
  • 存在する

    REFERENCE

  • ReactiveX
  • HERSTORY