一. Kotlin Flow 介绍
Flow 库是在 Kotlin Coroutines 1.3.2 发布之后新增的库。
官方文档给予了一句话简单的介绍:
Flow — cold asynchronous stream with flow builder and comprehensive operator set (filter, map, etc);
Flow 从文档的介绍来看,它有点类似 RxJava 的 Observable。因为 Observable 也有 Cold 、Hot 之分。
二. Flow 基本使用
Flow 能够返回多个异步计算的值,例如下面的 flow builder :
flow {
for (i in 1..5) {
delay(100)
emit(i)
}
}.collect{
println(it)
}
其中 Flow 接口,只有一个 collect 函数
public interface Flow<out T> {
@InternalCoroutinesApi
public suspend fun collect(collector: FlowCollector<T>)
}
如果熟悉 RxJava 的话,则可以理解为 collect() 对应 subscribe()
,而 emit() 对应