内容

未等待的_期货

Future 结果在 async 函数体中必须使用 dart:async 等待或标记为 unawaited

此规则从 Dart 2.0 开始可用。

此规则具有 快速修复 可用。

详情

#

等待返回 Future 的函数在异步函数体内部。

在异步方法中忘记 await 很容易,因为命名约定通常不会告诉我们方法是同步还是异步(除了 dart:io 中的一些)。

当你真的想要启动一个“启动并忘记”的 Future 时,推荐的方法是使用 dart:async 中的 unawaited// ignore// ignore_for_file 注释也适用。

错误

dart
void main() async {
  doSomething(); // Likely a bug.
}

正确

dart
Future doSomething() => ...;

void main() async {
  await doSomething();

  unawaited(doSomething()); // Explicitly-ignored fire-and-forget.
}

用法

#

要启用 unawaited_futures 规则,请在你的 analysis_options.yaml 文件中将 unawaited_futures 添加到 linter > rules

analysis_options.yaml
yaml
linter:
  rules:
    - unawaited_futures