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

在这里插入图片描述

一、Future概述

Future是Dart中处理异步操作的核心类型,表示一个可能在未来某个时间完成的操作。

未完成

成功

失败

异步操作开始

返回Future

操作状态

Pending

Completed with Value

Completed with Error

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

二、示例代码

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

posted @ 2026-02-14 10:23  yangykaifa  阅读(14)  评论(0)    收藏  举报