You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已导入dart:async却无法找到Result类该如何解决

问题原因

dart:async核心库中从未内置Result类型,你对该类的来源认知错误是导入失败的根本原因,且你当前使用的>=2.7.0 <3.0.0版本Dart SDK也不支持后续版本新增的类似内置能力

解决方案

你可以根据自己的需求选择以下任意一种方案:

方案1:使用第三方result包

  • 在项目pubspec.yaml的dependencies节点下添加对应依赖:
dependencies:
  result: ^1.0.0 # 该版本兼容你当前的SDK版本
  • 执行依赖拉取命令:纯Dart项目运行pub get,Flutter项目运行flutter pub get
  • 在代码中导入该包即可使用Result类型:
import 'package:result/result.dart';

方案2:导入自定义的Result类

如果你项目内部已经封装过Result泛型类,只需要将错误的dart:async导入替换为你自己Result类所在文件的引用路径即可,示例:

// 替换成你自己的Result类路径
import 'package:your_project/utils/result.dart';

方案3:自定义实现Result类

如果你不想引入第三方依赖,可以自行实现轻量的Result泛型类,参考代码如下:

abstract class Result<T> {
  const Result();

  factory Result.value(T data) = Success<T>;
  factory Result.error(Object err, [StackTrace? trace]) = Fail<T>;
}

class Success<T> extends Result<T> {
  final T data;
  Success(this.data);
}

class Fail<T> extends Result<T> {
  final Object error;
  final StackTrace? stackTrace;
  Fail(this.error, [this.stackTrace]);
}

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:54:01