firstRuntimeType<R> method

Future<R> firstRuntimeType<R>({
  1. R orElse()?,
})

Implementation

Future<R> firstRuntimeType<R>({R Function()? orElse}) {
  final completer = Completer<R>();
  firstWhere((v) => v.runtimeType == R).then((v) => completer.complete(v as R),
      onError: (exception, stackTrace) {
    if (exception is StateError && orElse != null) {
      completer.complete(orElse());
    } else {
      completer.completeError(exception, stackTrace);
    }
  });
  return completer.future;
}