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

相关推荐
传奇开心果编程8 小时前
【Flutter踩坑排雷】第7课:巨型 build 函数坑|全部 UI 写在同一个 build,维护难、隐性异常
android·flutter·ios·移动开发·跨平台·dart·声明式ui
程序员老刘10 小时前
从短剧App的bug看响应式编程在AI时代的优势
flutter·ai编程·客户端
恋猫de小郭19 小时前
最近 Android 有什么更新:Android Dev Summit 2026 技术解读
android·前端·flutter
好的佩奇1 天前
Dart 之类修饰符
android·flutter·dart
好的佩奇012 天前
Dart 之类修饰符
android·flutter·dart
Jewel1052 天前
文字为什么总是不居中!记录一个bug
android·flutter·ios
2601_949847753 天前
Form-data 跨端三方库仓颉适配全流程
前端·javascript·flutter
大龄秃头程序员3 天前
Flutter 中我为什么把 GetX 定位为高效率方案,而不是默认架构方案
flutter
传奇开心果编程3 天前
组合优先开发范式:从汉字造字原理到声明式UI组件组合思想
android·flutter·ios·swiftui·移动开发·harmonyos·android jetpack
2501_944521593 天前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php