跳到主要內容

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

示例

#

以下程式碼會生成此診斷資訊,因為它呼叫了非同步方法 exists

dart
import 'dart:io';

Future<void> g(File f) async {
  await f.exists();
}

常見修復

#

使用方法的同步版本

dart
import 'dart:io';

void g(File f) {
  f.existsSync();
}