目次

unawaited_futures

async関数本体内のFutureの結果は、dart:asyncを使用してawaitするか、unawaitedでマークする必要があります。

このルールは、Dart 2.0から利用可能です。

このルールには、クイックフィックスがあります。

詳細

#

必ずasync関数本体内でFutureを返す関数をawaitしてください。

命名規則では同期か非同期かが分かりにくい(dart:ioの一部のメソッドを除く)ため、asyncメソッドでawaitを忘れることがよくあります。

本当にファイアアンドフォーゲットのFutureを開始したい場合は、dart:asyncunawaitedを使用することをお勧めします。// 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ファイルのlinter > rulesの下にunawaited_futuresを追加します。

analysis_options.yaml
yaml
linter:
  rules:
    - unawaited_futures