跳到主要内容

await_only_futures

在 '{0}' 的实例上使用了 'await',它不是 'Future' 的子类型。

描述

#

await 后面的表达式类型不是 Future<T>, FutureOr<T>, Future<T>?, FutureOr<T>?dynamic 时,分析器会生成此诊断。

表达式 await null 是一个例外,因为它是引入微任务延迟的常用方法。

除非该表达式能产生 Future,否则 await 是不必要的,并且可能导致读者误认为存在异步性。

示例

#

以下代码会产生此诊断,因为 await 后面的表达式类型是 int

dart
void f() async {
  await 23;
}

常见修复方法

#

移除 await

dart
void f() async {
  23;
}