メインコンテンツにスキップ

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