我的可观察链在顶部具有无限可观察性,在其后具有无限可观察量。像这样:
repo.infinitGetItems()
.switchMap(items -> Observable
.just(items)
.flatMap(items -> repo.nonInfinitObs(items)));
当repo.nonInfinitObs发送onComplete事件时,我想要完成所有链。现在它还没有完成,因为repo.infinitGetItems()还活着。
我可以为rxJava2中的整个链执行强制完成吗?
提前致谢!
答案 0 :(得分:1)
您可以通过takeUntil
和一些流动外部手段停止主序列:
PublishSubject<Integer> stop = PublishSubject.create();
repo.infinitGetItems()
.takeUntil(stop)
.switchMap(items -> repo.nonInfinitObs(items)
.doOnComplete(() -> stop.onComplete())
);