如何在 kotlin 中结合暂停函数和流程的结果?
How to combine results from a suspend function and a flow in kotlin?
伙计们想象我有这两个数据源:
val flowA: Flow<String>
suspend fun funB(): Int
如何将两者的结果组合成一个流(比方说 Flow<Pair<String, Int>>
)?
下面的方法怎么样?有没有更好的方法?
combine(
flowA,
flow {emit(funB())}
) { a, b ->
...
}
假设您想要将相同的 Int
与 flowA
中的每个字符串配对,您可以按如下方式进行:
val funBResult = funB()
val pairs = flowA.map { it to funBResult }
如果 funB()
实际上是一个以 String
作为参数的函数,你可以这样做:
val pairs = flowA.map { it to funB(it) }
伙计们想象我有这两个数据源:
val flowA: Flow<String>
suspend fun funB(): Int
如何将两者的结果组合成一个流(比方说 Flow<Pair<String, Int>>
)?
下面的方法怎么样?有没有更好的方法?
combine(
flowA,
flow {emit(funB())}
) { a, b ->
...
}
假设您想要将相同的 Int
与 flowA
中的每个字符串配对,您可以按如下方式进行:
val funBResult = funB()
val pairs = flowA.map { it to funBResult }
如果 funB()
实际上是一个以 String
作为参数的函数,你可以这样做:
val pairs = flowA.map { it to funB(it) }