Kotlin中Flow的简单应用

Kotlin中Flow的简单应用_第1张图片

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

你可能感兴趣的:(kotlin,android)