Kotlin中Flow的简单应用
什么是Flow?Flow解决了什么问题?Flow的基本使用
什么是Flow?
Flow 库是在 Kotlin Coroutines 1.3.2 发布之后新增的库,也叫做异步流 类似 RxJava 的 Observable 、 Flowable 等等,所以很多人都用 Flow 与 RxJava 做对比。
Flow解决了什么问题?
1.Flow 支持线程切换、背压 2.Flow 操作符精简 3.简单的数据转换与操作符,如 map 等等 4.Flow 是对 Kotlin 协程的扩展,异步代码可以实现同步效果 5.代码简洁可读性高 6.易于测试 7.解决回调地狱的问题
Flow的基本使用
fun simple(): Flow
for (i in 1..3) {
delay(100) // 假装我们在这里做了一些有用的事情
emit(i) // 发送下一个值
}
}
fun main() = runBlocking
// 启动并发的协程以验证主线程并未阻塞
launch {
for (k in 1..3) {
println("flow $k")
delay(100)
}
}
// 收集这个流
simple().collect { value -> println(value) }
打印结果:
flow 1
1
flow 2
2
flow 3
3
相关文章
发表评论