waitUntilUnsafe method

Future<Object?> waitUntilUnsafe(
  1. Type type,
  2. bool predicate(
    1. Object?
    )
)

Implementation

Future<Object?> waitUntilUnsafe(Type type, bool Function(Object?) predicate) async {
  final currentValue = getUnsafe(type);
  if (predicate(currentValue)) return currentValue;
  final completer = Completer<Object?>();
  final cancel = addListenerUnsafe(type, (value) {
    if (predicate(value)) completer.complete(value);
  });
  final value = await completer.future;
  cancel();
  return value;
}