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