Flutter框架跨平台鸿蒙开发——Future基础与数据加载

一、Future概述

Future是Dart中处理异步操作的核心类型,表示一个可能在未来某个时间完成的操作。
未完成
成功
失败
异步操作开始
返回Future
操作状态
Pending
Completed with Value
Completed with Error

状态 说明
Pending 操作进行中
Completed 操作已完成 Value 或 Error

二、示例代码

dart 复制代码
Future<String> _fetchData() async {
  await Future.delayed(const Duration(seconds: 2));
  if (DateTime.now().second % 3 == 0) {
    throw Exception('网络请求失败');
  }
  return '数据加载成功: ${DateTime.now()}';
}

void _loadData() {
  setState(() {
    _isLoading = true;
    _error = null;
    _data = null;
  });

  _fetchData().then((data) {
    setState(() {
      _data = data;
      _isLoading = false;
    });
  }).catchError((error) {
    setState(() {
      _error = error.toString();
      _isLoading = false;
    });
  });
}

三、工作流程

数据源 Future对象 界面 用户 数据源 Future对象 界面 用户 点击加载数据 调用_fetchData() 请求延迟2秒 返回数据 then回调 更新状态 显示结果

四、状态管理

状态 UI显示 操作
初始 图标 + 提示 显示加载按钮
加载中 进度条 禁用按钮
成功 数据内容 显示数据
失败 错误信息 显示重试按钮

五、最佳实践



开始
显示Loading
执行异步操作
成功?
显示数据
显示错误
用户可重试

要点

  • 始终检查mounted状态
  • 提供清晰的错误反馈
  • 使用setState更新UI状态
  • 支持重试机制

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

相关推荐
恋猫de小郭22 分钟前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter
woshihuanglaoshi1 小时前
数据迁移与版本管理 - Flutter在鸿蒙平台实现数据库升级策略
数据库·学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
GitLqr11 小时前
玩转 WebSocket:从原理到 Flutter 实战
websocket·网络协议·flutter
世人万千丶11 小时前
参数管理_Flutter在鸿蒙平台路由参数最佳实践
学习·flutter·华为·harmonyos·鸿蒙
zhazhazsy18 小时前
Flutter 多 Isolate 实战:搭建主 Isolate 数据与能力桥
flutter
math_hongfan20 小时前
鸿蒙Flutter setState机制深入理解
学习·flutter·华为·harmonyos·鸿蒙
woshihuanglaoshi1 天前
参数验证_Flutter在鸿蒙平台确保路由参数类型安全
学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
末代iOS程序员华仔1 天前
Swift 的角色演变:从“主角”到“最佳配角”——iOS 应用被 Flutter 替换,Swift 变成辅助?
flutter·ios·swift
_阿南_1 天前
不是每一个Widget都会生成一个RenderObject
flutter
世人万千丶1 天前
鸿蒙Flutter Flex多子组件权重分配
学习·flutter·华为·harmonyos·鸿蒙