2017-03-20 7 views
0

私は観測可能な(それは熱い)システムプロセスを介して処理していますが、プロセスが観測可能なヒットonCompleteになるまで間隔を稼働させたいと思います。 (具体的には、間隔をキャンセルしたときに他のヒットonCompleteの)http://reactivex.io/documentation/operators/interval.htmlrxjavaの間隔と別の観測値の組み合わせ

は、どのように私は、これら2つの私が欲しい彼の行動を取得するために組み合わせることができます。

私は区間演算子を参照してください?

+0

コードを表示してください – shmakova

答えて

1

あなたは(解除)をキャンセルするために、間隔演算子をtakeUntil()演算子を使用することができ、takeUntil()は、入力としてObservableを受け取り、入力Observableアイテムを放出するときにキャンセル。それが残っているもの

はそのonComplete()でアイテムを発するObservableに熱いObservableを変換することですので、我々はtakeUntil()への入力としてそれを使用することができ、これは各ObservableイベントのNotificationオブジェクトを発するmaterialize()オペレータを、(使用可能ですonNext(),onError(),onCompleted())とfilter()との組み合わせで、onCompleted()イベントのみを取る。

Observable<Notification<Object>> hotOnCompleteObservable = 
      hot.materialize() 
       .filter(notification -> notification.isOnCompleted()); 

Observable interval = ... 
interval.takeUntil(hotOnCompleteObservable); 
関連する問題