本篇解析 example-flow-08.kt。探讨 Flow 中最基础的转换操作符.
1. 核心概念
Flow 的操作符命名与 List 或 Sequence 非常相似,例如 map(转换)和 filter(过滤)。
关键区别:
- 支持挂起:Flow 操作符内部的代码块可以调用挂起函数。
2. 代码解析
1 | suspend fun performRequest(request: Int): String { |
- 串行执行:默认情况下,每个
map转换都会等待前一个转换完成。在这个例子中,每隔 1 秒产出一个结果,总共耗时约 3 秒。
3. 开发者感悟
Flow 最大的魅力就在于此:它让你能用写同步集合代码的方式(一个 map 搞定),去处理原本非常复杂的异步回调逻辑。