rx-java - 合并 3 个单一结果 - 一个流
问题描述
我正在尝试异步地进行计算。
fun method1(): Int{
return 2+2
}
fun method2(value: Int): Int{
return value * 2
}
fun method3(value: Int): Int{
return value * 3
}
现在我希望方法 2 在方法 1 之后工作,并从她那里得到结果。方法 3 在方法 2 之后也起作用,并从她那里获取结果。是否可以使用 rxkotlin 做到这一点并将其整合到一个流中?
解决方案
如果您想链接该方法调用,您可以执行以下操作:
fun chain(): Single<Int> {
return Single.just(method1())
.map { result1 -> method2(result1) }
.map { result2 -> method3(result2) }
}
但是,如果 或 中的操作method1
是method2
异步的,method3
我建议将它们包装在Single
.
供参考map
vsflatMap
看看:
https://medium.com/mindorks/rxjava-operator-map-vs-flatmap-427c09678784
推荐阅读
- laravel - 为什么 Vue 的“v-for”元素的这种应用在 Laravel 中不起作用?
- css - 允许剪辑路径的不可见部分中的指针事件
- cmake - 我想知道为什么 add_execuable 有时可以使用与项目名称不同的名称,而有时则不能
- redis - 将多个独立 Redis 实例迁移并合并到 AWS Elasticache 上的新 Redis 集群中
- openacc - acc并行区域内的例程
- ios - FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector for architecture arm64
- python - 从单个问题创建多个变量
- python - 如何使用 PyQt5 Python 将 QTableWidget 数据转换为 PDF
- javascript - Bootstrap Popover 在动态加载时将不起作用
- python - 如何使用经过修改的图像大小的warpperspective opencv在转换后找到点位置?