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