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

相关推荐
专注仿真25 分钟前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
jimy11 小时前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
呆呆虫121 小时前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php
心疼你的一切2 小时前
Python自动发邮件实战定时发报表
大数据·开发语言·python
Wang's Blog3 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
中科三方3 小时前
IPv6检测常见问题:AAAA记录检测不通过是什么原因?
开发语言·php
沫璃染墨4 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
拥小抱4 小时前
Compose 知识点
android
刚入门的大一新生4 小时前
Linux-线程互斥
java·开发语言
文章永久免费只为良心4 小时前
Web应用安全与防护_第三章_日志文件包含_从一道 CTFshow 题目讲透「日志投毒型 LFI → RCE」:原理、时序陷阱与全变种攻防手册
android·网络安全·渗透测试·漏洞危害·漏洞描述·日志投毒·红队指南