Flutter框架跨平台鸿蒙开发——Future与Stream互转
Future和Stream可以互相转换,根据场景选择合适的类型。转Future.last。
·

一、转换概览
Future和Stream可以互相转换,根据场景选择合适的类型。
二、Future转Stream
Future<void> _futureToStream() async {
final data = await Future.delayed(
const Duration(seconds: 2),
() => 'Future转Stream的数据',
);
_addEvent('Future完成: $data');
}
三、Stream转Future
Future<void> _streamToFuture() async {
final stream = Stream.periodic(
const Duration(milliseconds: 500),
(i) => 'Stream数据-$i',
).take(5);
await for (final data in stream) {
_addEvent('Stream数据: $data');
}
final futureData = await stream.first;
_addEvent('Stream转Future: $futureData');
}
四、转换方法对比
| 方法 | 转换方向 | 特点 |
|---|---|---|
| Stream.fromFuture | Future→Stream | 单个事件 |
| Stream.first | Stream→Future | 取第一个值 |
| Stream.last | Stream→Future | 取最后一个值 |
| await for | Stream→Future | 遍历所有值 |
五、工作流程
六、选择指南
七、事件日志
要点:
- Future适合单次操作
- Stream适合持续数据
- 合理选择转换方法
- 注意异步等待时间
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
更多推荐

所有评论(0)