kotlin

Kotlin Flow 看这一篇 带你入门~

戏子无情 提交于 2020-11-05 09:02:41
前言 在最近的三篇中,标题都是 ***** 看这一篇就够了,而这篇关于Flow的,我认怂了,只能说 看这一篇 带你入门~,因为我发现Flow牵扯的东西实在是太多了,就像RxJava别说两篇 可能五篇也是说不完的。 为什么需要Flow 首先我们来回顾下Kotlin中我们如何使用挂起函数,我们在main方法中,调用挂起函数返回一组数据,代码如下所示: suspend fun loadData(): List<Int> { delay(1000) return listOf(1, 2, 3) } fun main() { runBlocking { loadData().forEach { value -> println(value) } } } 运行main函数,结果为 1s后 输出1 2 3 那么我们想一下,如果loadData中的数据集合,并不是一起返回的,比如从网络中先获取到了1 在获取到了2 最后再获取到了3 ,那么这样如果我们仍然在返回最后一个结果(其实也不知道)时一并返回数据,会造成资源浪费并且用户体验不好,那么我们如何解决这个问题呢? 上面挂起函数的返回类型是List类型,那么就必定只能一次性返回数据,此时,Flow就出场了~ Flow的基础使用 构建器 我们改写loadData方法,返回类型修改为Flow<Int> ,并构造一个flow,在flow中 每隔一秒