跳到主要內容

avoid_slow_async_io

穩定版

避免使用速度緩慢的非同步 dart:io 方法。

詳細資訊

#

避免 使用下列非同步檔案 I/O 方法,因為它們比同步對應方法慢得多。

  • Directory.exists
  • Directory.stat
  • File.lastModified
  • File.exists
  • File.stat
  • FileSystemEntity.isDirectory
  • FileSystemEntity.isFile
  • FileSystemEntity.isLink
  • FileSystemEntity.type

錯誤

dart
import 'dart:io';

Future<Null> someFunction() async {
  var file = File('/path/to/my/file');
  var now = DateTime.now();
  if ((await file.lastModified()).isBefore(now)) print('before'); // LINT
}

正確

dart
import 'dart:io';

Future<Null> someFunction() async {
  var file = File('/path/to/my/file');
  var now = DateTime.now();
  if (file.lastModifiedSync().isBefore(now)) print('before'); // OK
}

啟用

#

若要啟用 avoid_slow_async_io 規則,請在您的 analysis_options.yaml 檔案中的 linter > rules 下新增 avoid_slow_async_io

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_slow_async_io

如果您改為使用 YAML 對應語法來設定 linter 規則,請在 linter > rules 下新增 avoid_slow_async_io: true

analysis_options.yaml
yaml
linter:
  rules:
    avoid_slow_async_io: true