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);