async_for_in_wrong_context
async for-in 迴圈只能在 async 函式中使用。
描述
#當在函式或方法的函式體中發現 async for-in 迴圈,而該函式體未被標記為 async 或 async* 時,分析器會生成此診斷。
示例
#以下程式碼會生成此診斷,因為 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);
}
}