RxJava 2强制完整链具有无限可观察性

时间:2017-10-05 10:12:48

标签: android rx-java observable rx-java2 complete

我的可观察链在顶部具有无限可观察性,在其后具有无限可观察量。像这样:

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

当repo.nonInfinitObs发送onComplete事件时,我想要完成所有链。现在它还没有完成,因为repo.infinitGetItems()还活着。

我可以为rxJava2中的整个链执行强制完成吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以通过takeUntil和一些流动外部手段停止主序列:

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

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