runCheck method

Future<CheckInfo> runCheck(
  1. Checker check
)

Runs a single Checker, reporting its progress through ConnectionCheckUpdateEvents, and disposes it when done.

Used by all check* methods; can also be used to run a custom Checker subclass as part of this run.

Implementation

Future<CheckInfo> runCheck(Checker check) async {
  if (check.status != CheckStatus.idle) {
    throw StateError('check is running already');
  }
  final checkId = _getNextCheckId();
  final listener = check.createListener();
  listener.on<CheckerUpdateEvent>((event) => _updateCheck(checkId, event.info));
  try {
    return await check.run();
  } finally {
    _updateCheck(checkId, check.getInfo());
    await listener.dispose();
    await check.dispose();
  }
}