unawaited_futures
async 函式體中的 Future 結果必須使用 await 等待或使用 dart:async 中的 unawaited 標記。
詳情
#請務必在 async 函式體中等待返回 Future 的函式。
在 async 方法中很容易忘記使用 await,因為命名約定通常不會告訴我們一個方法是同步還是非同步的(dart:io 中的一些方法除外)。
當你確實想啟動一個“即發即忘”的 Future 時,推薦的方法是使用 dart:async 中的 unawaited。// ignore 和 // ignore_for_file 註釋也有效。
錯誤示例
dart
void main() async {
doSomething(); // Likely a bug.
}正確示例
dart
Future doSomething() => ...;
void main() async {
await doSomething();
unawaited(doSomething()); // Explicitly-ignored fire-and-forget.
}啟用
#要啟用 unawaited_futures 規則,請在你的 analysis_options.yaml 檔案中的 linter > rules 下新增 unawaited_futures
analysis_options.yaml
yaml
linter:
rules:
- unawaited_futures如果你使用 YAML map 語法來配置 linter 規則,請在 linter > rules 下新增 unawaited_futures: true
analysis_options.yaml
yaml
linter:
rules:
unawaited_futures: true