Kotlin流声明如下:
挂起函数异步返回单个值,但如何返回多个异步计算的值?这就是科特林流进来的地方。
但是,如果我的流的源是这样的,当它完成但不返回数据时,是否有方法从流中确定它?例如,如果流的源调用后端API,但API不返回数据,那么是否有一种方法可以确定流何时完成且没有数据?
发布于 2021-10-13 09:06:13
您只需在流上执行toList()并检查它是否为空
发布于 2021-10-13 11:27:06
如果API返回一个Flow,则通常期望它返回0或多个元素。该流通常将由某个代码段收集,以便处理这些值。collect()调用是一个挂起函数,当流完成时将返回:
val flow = yourApiCallReturningFlow()
flow.collect { element ->
// process element here
}
// if we're here, the flow has completed任何其他终端操作符,如first()、toList()等,都将以某种方式处理流的完成(甚至可能提前取消流)。
我不确定你在这里寻找什么,但例如,有一个终端操作员计数
val flow = yourApiCallReturningFlow()
val hasAnyElement = flow.count() == 0还有一个onEmpty允许发出一些特定的值,而不是空流。
我想这取决于当流中有项目时,您想要做什么。
https://stackoverflow.com/questions/69552575
复制相似问题