目次

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` ファイルの **linter > rules** に `avoid_slow_async_io` を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_slow_async_io