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. 这个是基本用法。

相关推荐
青穗CherishTang7 小时前
关于Retrofit+Kotlin Flow协程网络请求的封装(全新版)
网络请求·协程·retrofit·flow
RAN11426760088 小时前
1.3第一个程序的介绍
开发语言·qt
blue_ice .8 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^138287988729 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
泡海椒9 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)10 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
2501_9336707910 小时前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言
古法安卓10 小时前
Android-休眠唤醒后onLocationChanged没有数据问题排查
android·java·android studio
菜鸟~noob23311 小时前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium
白远山11 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析