waitForServiceExtensionAvailable method

Future<bool> waitForServiceExtensionAvailable(
  1. String name
)

Implementation

Future<bool> waitForServiceExtensionAvailable(String name) {
  if (isServiceExtensionAvailable(name)) return Future.value(true);

  // Listen for when the service extension is added and use it.
  final completer = Completer<bool>();
  final listenable = hasServiceExtension(name);
  late final VoidCallback listener;
  listener = () {
    if (listenable.value || !completer.isCompleted) {
      listenable.removeListener(listener);
      completer.complete(true);
    }
  };
  hasServiceExtension(name).addListener(listener);

  _maybeRegisteringServiceExtensions[name] ??= completer;
  return completer.future;
}