加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

RxJava合并可流动且可完成

发布时间:2020-12-14 19:25:06 所属栏目:Java 来源:网络整理
导读:我有一个Flowable,它连续发射项目,并且从不调用onError或onComplete.现在,我有一个Completable,我想与此Flowable合并,以便当Completable完成Flowable对onComplete的调用时.我无法直接更改提供给我的Flowable对象. 我遇到的一个问题是,我会在Flowable上使用ta

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读