- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我如何从 room 中读取可流动的值列表并将其转换为另一个对象,该对象是 room 中更多值的组合
database.leadsDao().getLeads(leadState.name)
.flatMap {
val len = it.size.toLong()
Flowable.fromIterable(it)
.flatMap {
Flowable.zip(
database.orderDao().getById(it.orderId),
database.orderMedicineDao().getByOrderId(it.orderId),
database.patientDao().getById(it.patientId),
Function3<Order, List<OrderMedicine>, Patient, LeadDetail>
{ order, orderMedicines, patient -> LeadDetail.from(it, patient, order, orderMedicines) })
}
.take(len)
.toList()
.toFlowable()
}
上面的代码有效,但我不喜欢 take(len)
部分。没有它,流永远不会调用订阅者的 onNext 。流一直在等待更多的项目,这不应该发生,因为 Flowable.fromIterable 给出有限数量的项目然后结束。即,下面的代码不起作用
database.leadsDao().getLeads(leadState.name)
.flatMap {
Flowable.fromIterable(it)
.flatMap {
Flowable.zip(
database.orderDao().getById(it.orderId),
database.orderMedicineDao().getByOrderId(it.orderId),
database.patientDao().getById(it.patientId),
Function3<Order, List<OrderMedicine>, Patient, LeadDetail>
{ order, orderMedicines, patient -> LeadDetail.from(it, patient, order, orderMedicines) })
}
.toList()
.toFlowable()
}
最佳答案
Flowable.fromIterable gives finite number or items and then ends.
但是 flatmap
中的 Flowable.zip
不会结束,因为 Room 的 DAO 对象发出当前值和所有 future 的更新,所以 database. *()
压缩在一起的调用不是有限的。如果您将 .first()
调用添加到内部 Flowable.zip
,第二个版本应该也能正常工作。
关于android - 在房间中将 Flowable<List<Obj1>> 更改为 Flowable<List<Obj2>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45908578/
我在 Eclipse 中使用 Spring Boot 和 Flowable API 创建了一个 Flowable 应用程序。现在我的要求是从 Flowable UI 运行该流程。我们是否可以部署现有的
当我在两个由 Flowable.create() 创建的 Flowable (a1, a2) 上使用 Flowable.merge() 时,它只会发出 a2。但是当我合并两个由 Flowable.in
RxJava 2.0.5 引入了 ParallelFlowable类型,对应Flowable.parallel()运算符(operator)。我发现实现并行性的一般建议是使用 flatMap。像这样:
我对 RxJava 还很陌生,我需要创建包含多个数据源的存储库。这对我来说很复杂,因为有几个较小的子任务我不知道如何用 RxJava 实现。 我有 Dao,它提供 Flowable在某些范围内到 Da
我是 RxJava2 新手,不确定我是否正确使用它。 我有几个从 TCP 流读取数据的输入流,并将数据读入 byte[]。然后,我采用 byte[] 并为每个 InputStream 创建一个 Flo
我如何从 room 中读取可流动的值列表并将其转换为另一个对象,该对象是 room 中更多值的组合 database.leadsDao().getLeads(leadState.name) .
我有一个用于将 UserScoreTO 列表分组到单个用户对象(多对一关系)的 Rx 流。 public void execute() { getUsers() .fl
如何使用 Flowable 指定流程持续时间?如果从 startEvent 过去,例如30 天,流程不会完成,应该关闭。我将 Spring Boot 与 flowable 一起使用。应该用图表还是代码
我有一个返回 Flowable 的函数接口(interface) interface Iface{ Flowable get(); } 现在让我们假设具体实现是: class IFaceImpl
根据下面的流程,在基数 = 5 的情况下并行执行“simpleLog”(异步)服务任务时,我们遇到了并发问题,此后流程不再继续执行“dummy”(独占)服务任务下一步也不会重试“simpleLog”中
如何中断长期任务? public Flowable simple(int number) { Flowable flowable = Flowable.create(emitter -> {
使用改造,我从服务器获取 Flowable 数据,然后在 View 模型中,我将 flowable 转换为 Livedata,最后观察 Activity 中的 LiveData。在 Activity
我是 Flowable 新手。我尝试创建 BPMN 部署到 MYSQL,并且部署成功。 但是在取消部署过程中,我将所有部署存储在列表中,然后根据我的条件执行取消部署,就像如果 resouceName
我对 RxJava 还很陌生,我需要创建包含多个数据源的存储库。这对我来说很复杂,因为有几个较小的子任务我不知道如何用 RxJava 实现。 首先我有自己写的dao,它处理InputStream,并提
您好,我是 RxJava 新手,我有一个接收 Flowable f2 的类,我需要从中获取值,而不更改任何数据(将值保存到本地缓存)。然后将其与其他 Flowable f1 连接起来并将其发送到更高级
我假设 DefaultAsyncJobExecutor 是默认选择作为 AsyncExecutor 接口(interface)实现的类(不确定这个假设是否正确) 所以基本上我想修改一个异步作业的默认超
我想在 Flowable 中的所有项目发出后发出最终项目。现在我可以通过以下代码实现这一点。 Flowable flowable = getFlowable(); flowable.toList()
我正在使用 reportlab 3.2.0。 SPACER = Spacer(0, 10) buff = BytesIO() doc = SimpleDocTemplate(buff, rightMa
我正在尝试为 Flowable 动态生成工作流文件并在旅途中部署它。 有两个挑战:1. 创建 BAR 文件来打包生成的 XML2. 动态部署。 有人试过吗?如果是,您能否提供帮助或建议替代方案 最佳答
我有一个数据访问对象,它将数据源中的每个项目传递给消费者: public interface Dao { void forEachItem(Consumer item); } 这总是以单线程方
我是一名优秀的程序员,十分优秀!