2017-10-05 27 views
0

私は観測可能な連鎖があり、その上に無限観測可能で、無限観測後には無限観測可能です。このように:RxJava 2無限観測可能完全連鎖

repo.infinitGetItems() 
     .switchMap(items -> Observable 
          .just(items) 
          .flatMap(items -> repo.nonInfinitObs(items))); 

repo.nonInfinitObsがonCompleteイベントを送信すると、すべてのチェーンを完了することができます。これで、repo.infinitGetItems()が生き残っているため、完了していません。

rxJava2でチェーン全体の強制完了のような操作を行うことができますか?

ありがとうございます!

答えて

1

あなたはtakeUntilと、いくつかのフロー・外部手段を介してメインシーケンスを停止することができます

PublishSubject<Integer> stop = PublishSubject.create(); 

repo.infinitGetItems() 
    .takeUntil(stop) 
    .switchMap(items -> repo.nonInfinitObs(items) 
         .doOnComplete(() -> stop.onComplete()) 
); 
+0

感謝を!試してみましょう。 –

+0

それは魅力のように動作します!ありがとう、時間と答え:) –

関連する問題