unawaited 函数

  1. @Since("2.15")
void unawaited(
  1. Future<void>? future
)

显式忽略一个 future。

并非所有 future 都需要被等待。Dart 检查器有一个可选的 "未等待的 future" 检查器,它强制异步函数中的潜在 future(静态类型为 FutureFuture? 的表达式)以某种方式处理。如果一个特定的 future 值不需要被等待,你可以用它调用 unawaited(...),这将避免检查器警告,仅仅是因为该表达式不再具有类型 Future。使用 unawaited 没有其他效果。你应该使用 unawaited 来传达明确不等待 future 的意图。

如果 future 因为错误而完成,那么没有等待它可能是一个错误。那个错误仍然会发生,并且除非同一 future 在其他地方也被等待(或以其他方式处理),否则它将被视为未处理的异常。因此,unawaited 只应用于预期会以值完成的 future。如果你也不想了解这个 future 的错误,可以使用 FutureExtensions.ignore

实现

@Since("2.15")
void unawaited(Future<void>? future) {}