我有一个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()