跳到主要内容

discarded_futures

稳定
有可用修复

在同步函数中,不应有返回 Future 的调用,除非它们被赋值或返回。

详情

#

在非 async 函数中进行异步调用通常是编程错误的迹象。通常情况下,这些函数应标记为 async,并且此类 Future 很可能应被等待(由 unawaited_futures 规则强制执行)。

不要 在非 async 块中调用异步函数。

错误示例

dart
void recreateDir(String path) {
  deleteDir(path);
  createDir(path);
}

Future<void> deleteDir(String path) async {}

Future<void> createDir(String path) async {}

正确示例

dart
Future<void> recreateDir(String path) async {
  await deleteDir(path);
  await createDir(path);
}

Future<void> deleteDir(String path) async {}

Future<void> createDir(String path) async {}

启用

#

要启用 discarded_futures 规则,请在您的 analysis_options.yaml 文件中的 linter > rules 下添加 discarded_futures

analysis_options.yaml
yaml
linter:
  rules:
    - discarded_futures

如果您使用 YAML 映射语法配置 linter 规则,请在 linter > rules 下添加 discarded_futures: true

analysis_options.yaml
yaml
linter:
  rules:
    discarded_futures: true