内容

avoid_slow_async_io

避免使用慢速异步 dart:io 方法。

此规则从 Dart 2.0 开始可用。

详细信息

#

避免使用以下异步文件 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 文件中将 avoid_slow_async_io 添加到 **linter > rules** 下。

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_slow_async_io