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