【发布时间】:2021-12-28 05:24:39
【问题描述】:
我写的代码如下。
suspend fun getDataByRegion(): Flow<Result?> {
// getRegion() return Flow<Region>
return getRegion().map { region: Region ->
repository.requestDataFromServer(region)
}
}
问题是 repository.requestDataFromServer(region) 调用了两次。
所以我认为我应该使用zip 或combine 之类的运算符。
在使用这些运算符时,第二个流如何使用第一个流的数据?
【问题讨论】:
-
你怎么知道数据被发射了两次?您是否添加了日志语句?将它们包括在问题中。
-
在现有代码中,我找不到任何问题。你能发布更多代码吗?
-
为什么这个函数标记为
suspend?好像getRegion()只是返回一个Flow,所以它也不应该是一个挂起函数。
标签: android kotlin kotlin-coroutines flow