鸿蒙跨端框架Flutter学习:Stream转换与数据处理
Stream提供了丰富的转换操作符,可以对数据流进行处理。不同处理方式的性能对比(20条数据)generate产生Stream。expand展开列表。
·

一、Stream转换操作符
Stream提供了丰富的转换操作符,可以对数据流进行处理。
二、过滤奇数
void _processData() {
setState(() {
_filteredData.clear();
_transformedData.clear();
// 过滤偶数,保留奇数
_controller.stream
.take(1)
.map((_) => _originalData)
.expand((data) => data)
.where((n) => n % 2 != 0)
.listen((n) => _filteredData.add(n));
});
}
三、转换为字符串
// 转换为字符串
_controller.stream
.take(1)
.map((_) => _originalData)
.expand((data) => data)
.map((n) => '数字: $n')
.listen((s) => _transformedData.add(s));
四、操作符对比
| 操作符 | 功能 | 示例 |
|---|---|---|
| map | 转换每个值 | .map((n) => n * 2) |
| where | 过滤值 | .where((n) => n > 0) |
| expand | 展开列表 | .expand((list) => list) |
| take | 限制数量 | .take(10) |
| skip | 跳过值 | .skip(5) |
五、处理流程
六、数据展示
七、性能优化
要点:
- 使用take(1)限制Stream长度
- 及时清除旧数据
- 使用expand展开列表
- 合理选择操作符
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
更多推荐




所有评论(0)