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