假设我有两个流:
val x: Flow<Long?> = dao.getValueX()
val y: Flow<Long?> = dao.getValueY()我可以有第三个流,流z,它会将这两个流作为一对发出吗?
假设我有XYObject看起来像的XYObject()
X: Long?
Y: Long?我想基本上发出一个z流,其中它发出由上面两个流填充的X和Y的XYObject。我实际上有3-4个我想要发射的东西,但为了例子的缘故,我把它限制在2个。
发布于 2021-03-24 20:54:35
您可以使用combine()变换函数:
返回一个流,它的值是由transform函数通过组合每个流最近发出的值来生成的。
并像这样定义z:
import kotlinx.coroutines.flow.combine
data class XYObject(val x: Long?, val y: Long?)
val x: Flow<Long?> = dao.getValueX()
val y: Flow<Long?> = dao.getValueY()
val z: Flow<XYObject> = x.combine(y) { _x: Long?, _y: Long? ->
XYObject(_x, _y)
}https://stackoverflow.com/questions/66324026
复制相似问题