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

async_for_in_wrong_context

async for-in ループは async 関数内でのみ使用できます。

説明

#

この診断は、analyzer が、本体が async または async* としてマークされていない関数またはメソッド内で async for-in ループを見つけた場合に生成されます。

#

次のコードは、f の本体が async または async* としてマークされておらず、f に async for-in ループが含まれているため、この診断を生成します。

dart
void f(list) {
  await for (var e in list) {
    print(e);
  }
}

一般的な修正

#

関数が Future を返す必要がある場合は、本体を async でマークしてください。

dart
Future<void> f(list) async {
  await for (var e in list) {
    print(e);
  }
}

関数が値の Stream を返す必要がある場合は、本体を async* でマークしてください。

dart
Stream<void> f(list) async* {
  await for (var e in list) {
    print(e);
  }
}

関数が同期である必要がある場合は、ループ前の await を削除してください。

dart
void f(list) {
  for (var e in list) {
    print(e);
  }
}