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

相关推荐
Mr YiRan5 小时前
C++面向对象继承与操作符重载
开发语言·c++·算法
普通网友7 小时前
Android Jetpack 架构组件最佳实践之“网抑云”APP
android·架构·android jetpack
普通网友7 小时前
原创_Android Jetpack Compose 最全上手指南
android·android jetpack
FDoubleman7 小时前
Android Jetpack之Compose入门(一)
android·android jetpack
普通网友8 小时前
Android Jetpack从入门到精通,干货满满
android·android jetpack
子云心8 小时前
Android Jetpack 系列(七)App Startup 启动优化
android·android jetpack·jetpack·initializer·startup·appstartup
嫩嫩的猿8 小时前
android jetpack compose Model对象更新变量 UI不更新、不刷新问题
android·ui·android jetpack
普通网友8 小时前
Android Jetpack 之 LifeCycle 组件_android 自定义view lifecycle
android·gitee·android jetpack