getInstanceFromCacheAsync<MInstance extends MvvmInstance, InputState> method
Future<MInstance>
getInstanceFromCacheAsync<
MInstance extends MvvmInstance, InputState>( - String id, {
- dynamic params,
- int? index,
- String? scopeId,
- bool withoutConnections = false,
})
Implementation
Future<MInstance>
getInstanceFromCacheAsync<MInstance extends MvvmInstance, InputState>(
String id, {
dynamic params,
int? index,
String? scopeId,
bool withoutConnections = false,
}) async {
final scope = scopeId ?? BaseScopes.global;
if (!container.contains(scope, id, index)) {
performCheckForCyclicDependencies(id, index);
final instance = await constructAndInitializeInstanceAsync<MInstance>(
id,
params: params,
);
container.addObjectInScope(
object: instance,
type: id,
scopeId: scope,
);
finishBuildingInstance(id, index);
return instance;
}
final instance = container.getObjectInScope(
type: id,
scopeId: scope,
index: index ?? 0,
) as MInstance;
if (!instance.isInitialized) {
if (withoutConnections) {
instance.initializeWithoutConnections(params);
await instance.initializeWithoutConnectionsAsync();
} else {
instance.initialize(params);
await instance.initializeAsync();
}
}
return instance;
}