当前位置: 首页 > 知识库问答 >
问题:

RxJava合并可流动且可完成

阎修明
2023-03-14

我有一个flowable,它连续发出项,从不调用onerroroncomplete。现在,我有一个completable,我希望将它与这个flowable合并,以便当completable完成时,flowable调用oncomplete。我不能直接更改提供给我的flowable对象。

我遇到的一个问题是,我本来会在flowable上使用taketail,但是flowable可能会在任何时候停止发出项,我仍然希望complete能够调用oncomplete

Update:因为我们可以完成.toflowable(),所以我们能够合并两个flowable。问题是,当一个人完成时,我仍然找不到一种方法来完成这两个。

共有1个答案

曾皓
2023-03-14

正如您所指出的,您不能更改原始的flowable本身,因此它不会发出oncomplete。但是,您可以通过执行以下操作(伪代码)使生成的flowable发出它:

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

 类似资料:
  • 假设存在包含方法的接口: 实现combinedCall方法的最佳方法是什么: 从makeHttpCall获取数据 使用store InDatabase存储它 返回在store InDatabase完成时完成的完成? 似乎在RxJava 1.0中可以执行Completable.merge(可观察),但合并似乎不再接受可观察。

  • 我有这个代码,任务是确定最长的单词,我通过几个流进行了测试。如何组合它们?

  • 重新编辑:我将使用这个方法的结果来初始化我视图中一些按钮的可见性,理论上公认的答案似乎很好,但是第一个方法的返回值是flowable>而不是flowable。因此,我不能将它作为参数传递给订阅,因为它需要可流动的,但它是可流动的 编辑前的问题 所以我想做的是,如果我不会从searchContract方法得到任何结果,则返回true,如果得到结果,则返回false。在使用observables时,我

  • 我目前在Android和Kotlin上使用RxJava,但我有一个问题,如果不使用toBlocking(),我无法解决。 我在员工服务中有一个方法,它返回一个可观察的 这一切都很好,因为每当员工发生变化时,这个可观察对象就会发出新的员工列表。但是我想从员工那里生成一个PDF文件,这显然不需要每次员工更改时都运行。另外,我想从PDF生成器方法返回一个可完成的对象。我想在PDF中添加一个标题,然后遍历

  • 我对RxJava并不完全陌生,但我被一项看似简单的任务所阻碍。 我有一个数据源,它公开了一个反应式API,我所要做的就是获取一些数据,返回它,并在没有其他消息发出时自动关闭连接。 这是我的代码: conn.query()和conn.close()在不同的调度程序中异步执行。此代码不起作用,因为conn.close()返回一个没有订阅服务器的Completable。此外,如果我手动订阅doOnCom

  • 问题内容: 我在这里张贴了一些代码,可以正确解决发布者遇到的问题。OP希望删除重复项,并将某些特殊项放在列表的顶部。我在一个特殊的类中使用,包装了他们正在使用的类,以实现他们想要的。 然后我开始思考......像你一样......我是通过返回消除重复从方法,而不是通过返回从实现作为一个需要做的正确指示在重复(自定义一个的)。 我不反对使用此技术,但我是否使用了可能被视为 未记录的功能 ?我是否可以

  • 我正在构建一个应用程序,从互联网缓存数据,当手机脱机时,它将显示脱机项目(该功能按预期工作)。现在我很难包含一个刷新选项(我基本上会删除缓存中的项,并尝试获取更多最近的项)。我有两个问题: 我不知道如何将Completable和Single结合起来,它给了我一个错误,下面的函数都不能用提供的参数调用 我不知道如何将参数传递给andThen运算符中的函数getWeather。 RemoteWeath

  • 我正在尝试开发我的第一个RxJava例子 我有一个带有文本框和三个按钮的主要活动。第一个按钮初始化单独类中的整数。第二个按钮订阅一个可观察量,该可观察量假定正在观察整数。第三个按钮将整数的值减小 1。 这是我的密码 和班级 当我尝试使用 订阅时,它只是给了我 的值(即 6),然后它给了我完成! 然后我尝试使用,认为我需要使用,只是而不是,但后来我得到了一个返回的空的,然后再次完成! 有人能帮助我从