kotlin Flow的用法

测试下异步数据流Flow的用法:

Kotlin 复制代码
private fun testFlow() { // 测试 Flow
        GlobalScope.launch {
            println("Start loading...")
            loadPages()
                .catch { e -> println("Error: $e") }
                .collect { pageData ->
                    Log.d("zxzx", "获取到data:${pageData}")
                    // 更新 UI
                }
            Log.d("zxzx", "done")
            Log.d("zxzx", "无所吊谓")
        }
    }

    // 模拟 API
    suspend fun fetchPage(page: Int): List<String> {
        delay(1000) // 模拟网络延迟
        return List(3) { "Page $page - Item $it" }
    }

    fun loadPages(): Flow<List<String>> = flow {
        for (page in 1..3) {
            val data = fetchPage(page)
            emit(data) // 发射每一页数据
        }
    }.flowOn(Dispatchers.IO) // 网络请求在 IO 线程执行

调用testFlow函数,打印:

ok. 这个是基本用法。

相关推荐
buhuizhiyuci13 小时前
【python篇——一周速通python语法】python的基础语法操作
开发语言·python
程序猿编码13 小时前
没有AI框架,没有GPU,一个C语言文件跑通大模型
c语言·开发语言·人工智能·深度学习·ai·大模型
zmzb010313 小时前
C++课后习题训练记录Day160
开发语言·c++
沫璃染墨14 小时前
现代C++⊂C++11篇(一)列表初始化全解 & std::initializer_list
开发语言·c++
pengyu14 小时前
【Kotlin 协程修仙录 · 金丹境 · 后阶】 | 异常防火墙:supervisorScope 与异常隔离的终极奥义
android·kotlin
阿米亚波14 小时前
【C++ STL】std::forward_list
开发语言·c++·笔记·stl·visual studio·forward_list
buhuizhiyuci14 小时前
【python篇——一周速通python语法】python的条件语句和循环语句
开发语言·python
geovindu14 小时前
go: Recursion Algorithm
开发语言·后端·算法·golang·递归算法
cheng21910114 小时前
Cocos Creator打包安卓并支持 Android 16KB 页面大小
android
geovindu14 小时前
CSharp: Composite Pattern
开发语言·后端·c#·组合模式·结构型模式