2017-10-05 221 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

它就像一個魅力!謝謝你的時間和回答:) –