首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定流何时不返回数据

问确定流何时不返回数据
EN

Stack Overflow用户
提问于 2021-10-13 08:59:13
回答 2查看 1.6K关注 0票数 3

Kotlin流声明如下:

挂起函数异步返回单个值,但如何返回多个异步计算的值?这就是科特林流进来的地方。

但是,如果我的流的源是这样的,当它完成但不返回数据时,是否有方法从流中确定它?例如,如果流的源调用后端API,但API不返回数据,那么是否有一种方法可以确定流何时完成且没有数据?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-13 09:06:13

您只需在流上执行toList()并检查它是否为空

票数 -1
EN

Stack Overflow用户

发布于 2021-10-13 11:27:06

如果API返回一个Flow,则通常期望它返回0或多个元素。该流通常将由某个代码段收集,以便处理这些值。collect()调用是一个挂起函数,当流完成时将返回:

代码语言:javascript
复制
val flow = yourApiCallReturningFlow()

flow.collect { element ->
   // process element here
}

// if we're here, the flow has completed

任何其他终端操作符,如first()、toList()等,都将以某种方式处理流的完成(甚至可能提前取消流)。

我不确定你在这里寻找什么,但例如,有一个终端操作员计数

代码语言:javascript
复制
val flow = yourApiCallReturningFlow()

val hasAnyElement = flow.count() == 0

还有一个onEmpty允许发出一些特定的值,而不是空流。

我想这取决于当流中有项目时,您想要做什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69552575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档