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 = 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

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: