本篇解析 example-flow-20.kt。学习如何将两个独立的数据源进行配对组合。
1. 核心操作符:zip
zip 操作符用于将两个流中的对应元素组合成一个新的元素。
特点:
- 一一对应:第一个流的第 N 个元素只会与第二个流的第 N 个元素配对。
- 短板效应:如果其中一个流结束了,整个
zip后的流也会立即结束。
2. 代码解析
1 | val nums = (1..3).asFlow() // 1, 2, 3 |
- 输出:
1 -> one
2 -> two
3 -> three
3. 开发者感悟
zip 在处理“多源同步”时非常有用。例如:你需要同时请求用户的个人资料和订单列表,并把这两者合并成一个 UIModel。只有当两个请求都成功返回对应的结果时,zip 才会产出合并后的对象。