RxJava合并可流动且可完成

前端之家收集整理的这篇文章主要介绍了RxJava合并可流动且可完成 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个Flowable,它连续发射项目,并且从不调用onError或onComplete.现在,我有一个Completable,我想与此Flowable合并,以便当Completable完成Flowable对onComplete的调用时.我无法直接更改提供给我的Flowable对象.

我遇到的一个问题是,我会在Flowable上使用takeUntil,但是Flowable可能会在任何时候停止发射项目,我仍然希望Completable能够调用onComplete.

更新:
由于我们可以执行Completable.toFlowable(),因此我们可以合并两个Flowable.问题是,当一个完成时,我仍然找不到一种完成这两个方法方法.

最佳答案
正如您所指出的,您不能更改原始Flowable本身,因此它不会发出onComplete.但是,您可以通过执行以下操作(伪代码)使所得的Flowable发出它:

val f: Flowable = ...
val c: Completable = ...
val r: Flowable = f.materialize().mergeWith(c.materialize()).dematerialize()

猜你在找的Java相关文章