首页 > 解决方案 > 合并 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 做到这一点并将其整合到一个流中?

标签: rx-javareactive-programmingrx-java2rx-kotlin

解决方案


如果您想链接该方法调用,您可以执行以下操作:

   fun chain(): Single<Int> {
        return Single.just(method1())
                .map { result1 -> method2(result1) }
                .map { result2 -> method3(result2) }
   }

但是,如果 或 中的操作method1method2异步的,method3我建议将它们包装在Single.

供参考mapvsflatMap看看:

https://medium.com/mindorks/rxjava-operator-map-vs-flatmap-427c09678784


推荐阅读