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

相关推荐
leazer17 小时前
Flutter Windows 构建失败:.plugin_symlinks 符号链接异常的排查与修复
windows·flutter
小蜜蜂嗡嗡1 天前
flutter image_cropper截图控件布局顶到状态栏中问题
flutter
程序员老刘2 天前
跨平台开发地图:大厂统一底层,五月框架大乱斗谁在干实事?| 2026年5月
flutter·客户端
环信即时通讯云2 天前
环信Flutter UIKit适配鸿蒙实战指南
flutter·华为·harmonyos
用户536822100182 天前
flutter学习笔记 - Dart基本语法(一)
flutter
用户游民2 天前
Flutter Provider原理以及用法
前端·flutter
qq_14030341442 天前
flutter
flutter
程序员老刘3 天前
为什么AI不会淘汰Flutter,反而让它更吃香了
flutter·ai编程·客户端
蝎子莱莱爱打怪3 天前
我花两年业余时间做了个IM系统,然后呢😂??
后端·flutter·面试