メインコンテンツにスキップ

unawaited_futures

この式で計算された「Future」に「await」がありません。

説明

#

アナライザーは、Future 型の式に対して、特定のケースでのみこの診断を生成します。

  • 式自体がステートメントである場合(f(); のような場合)、
  • 式がカスケードの一部である場合(C()..f() のような場合)、
  • 式が文字列補間である場合('${f()}' のような場合)。

アナライザーは、async または async* 関数内の式に対してのみ、この診断を生成します。

一般的な2つの修正方法は、式を「await」するか、式を unawaited() の呼び出しでラップすることです。

#

次のコードは、関数 g が Future を返しますが、その Future が await されていないため、この診断を生成します。

dart
Future<void> f() async {
  g();
}

Future<int> g() => Future.value(0);

一般的な修正

#

Future が後続のコードが実行される前に完了する必要がある場合は、呼び出しの前に await を追加してください。

dart
Future<void> f() async {
  await g();
}

Future<int> g() => Future.value(0);

Future が後続のコードが実行される前に完了する必要がない場合は、Future を返す呼び出しを unawaited 関数の呼び出しでラップしてください。

dart
import 'dart:async';

Future<void> f() async {
  unawaited(g());
}

Future<int> g() => Future.value(0);