kotlin 如何从流中获取所有结果?

vshtjzan  于 2023-03-30  发布在  Kotlin
关注(0)|答案(1)|浏览(134)

我对协程还是个新手,所以请耐心听我说。我有以下函数:

suspend fun getPortfolios(): Flow<Portfolio> = // ...

它工作得很好,使用r2dbc调用从数据库返回一个流。然而,我希望能够立即对完整的结果进行操作。这个特定的用例与在单元测试中执行Assert有关,但我相信还有其他用例涉及。
我不想让代码必须是“同步的”,我只想在另一个调用上面那个的suspend函数中一次获得所有将由Flow返回的值。
我看到上面有一个collect()函数,但它返回一个Unit,这对我来说很奇怪。接下来我可以尝试什么?

nzk0hqpo

nzk0hqpo1#

我留下这篇文章是为了帮助其他想学习心流的人,但答案再简单不过了:

val portfolios: List<Portfolio> = getPortfolios().toList()

相关问题