waitUntilUnsafe method
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;
}