跳至主要内容

await_in_late_local_variable_initializer

“await”表达式不能用于“late”局部变量的初始化器。

描述

#

当带有 late 修饰符的局部变量在初始化器中使用 await 表达式时,分析器会产生此诊断。

示例

#

以下代码会产生此诊断,因为它在局部变量 v 的初始化器中使用了 await 表达式,而 v 被标记为 late

dart
Future<int> f() async {
  late var v = await 42;
  return v;
}

常见修复

#

如果初始化器可以重写为不使用 await,则将其重写

dart
Future<int> f() async {
  late var v = 42;
  return v;
}

如果初始化器无法重写,则移除 late 修饰符

dart
Future<int> f() async {
  var v = await 42;
  return v;
}