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