disposable<T extends Disposable> method
ProviderDefinition<T>
disposable<T extends Disposable>(})
Defines a Disposable
as single create
that will be automatically
closed.
The dispose
method of the instance created by the create
will
be called when the global context of the koin is finalized.
Implement Disposable
interface when the business classes use streams
or it is necessary to finalize some internal component.
Implement the Disposable
interface:
class Bloc implements Disposable {
@override
void dispose() {
// close streams
// ...
}
}
Define the bloc:
var blocModule = Module()..bloc((s) => Bloc());
Implementation
ProviderDefinition<T> disposable<T extends Disposable>(
ProviderCreate<T> create, {
Qualifier? qualifier,
bool createdAtStart = false,
bool override = false,
}) {
var beanDefinition = single<T>(create,
qualifier: qualifier,
createdAtStart: createdAtStart,
override: override);
beanDefinition.onClose((bloc) => bloc.dispose(),
onDisposeUnitialized: () {});
return beanDefinition;
}