unawaited 函数
- @Since("2.15")
- Future<
void> ? future
显式忽略一个 Future。
并非所有 Future 都需要等待。Dart linter 有一个可选的 "未等待的 Future" 检查,它强制要求异步函数中的潜在 Future(具有 Future 或 Future?
的静态类型的表达式)被 某种方式 处理。如果特定的 Future 值不需要等待,你可以调用 unawaited(...)
并传入它,这样就可以避免检查,因为该表达式不再具有 Future 类型。使用 unawaited
没有其他效果。你应该使用 unawaited
来传达故意不等待 Future 的 意图。
如果 Future 以错误结束,那么不等待它可能是一个错误。那个错误仍然会发生,并且除非相同的 Future 在其他地方也被等待(或以其他方式处理),否则将被视为未处理的错误。因此,unawaited
只应用于那些 预期 会以值完成的 Future。如果您也不希望了解来自此 Future 的错误,可以使用 FutureExtensions.ignore。
实现
@Since("2.15")
void unawaited(Future<void>? future) {}