getAsync<T extends Object> method

Future<T> getAsync<T extends Object>({
  1. String? name,
})

Asynchronously retrieves a registered dependency of type T (and optionally name).

If the dependency is not yet registered, it returns a Future that completes when the dependency is registered.

Implementation

Future<T> getAsync<T extends Object>({final String? name}) async {
  if (isRegistered<T>(name: name)) {
    return get<T>(name: name);
  } else {
    final dependencyKey = DependencyKey(type: T, name: name);
    if (!_dependencyMap.containsKey(dependencyKey)) {
      _dependencyMap.set(dependencyKey, Dependency<T>.placeHolder());
    }

    return (_dependencyMap.find(dependencyKey)! as Dependency<T>).completer.future;
  }
}