AsyncFinal<T> constructor
const
AsyncFinal<T> ({
- Object? name,
- required Equal<
Future< equal,T> > - ExposeValue<
T> ? expose, - DisposeValue<
T> ? dispose,
Assign an instance asynchronously and exposing it in current scope.
So:
final rootScope = await Scope.root([
AsyncFinal<Repository>(
name: 'repository',
equal: (scope) async {
return await createRepositoryAsync();
},
),
]);
Simulates:
void rootScope() async {
final repository = await createRepositoryAsync();
}
Use expose
parameter to override default exposing behavior.
Use dispose
parameter to register dispose logic.
Implementation
const AsyncFinal({
Object? name,
required Equal<Future<T>> equal,
ExposeValue<T>? expose,
DisposeValue<T>? dispose,
}): _name = name,
_equal = equal,
_expose = expose,
_dispose = dispose;