跳到主要內容

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