fixed initialization error for singeltone provider

This commit is contained in:
Sergey Penkovsky
2021-04-30 16:42:39 +03:00
parent 276d6bfb12
commit 8f2ae95b8e
2 changed files with 8 additions and 7 deletions

View File

@@ -96,9 +96,6 @@ class Binding<T> {
/// ///
/// return [Binding] /// return [Binding]
Binding<T> singeltone() { Binding<T> singeltone() {
if (_mode == Mode.PROVIDER_INSTANCE) {
_instance = _provider?.call();
}
_isSingeltone = true; _isSingeltone = true;
return this; return this;
} }
@@ -113,5 +110,11 @@ class Binding<T> {
/// ENG: Resolve instance. /// ENG: Resolve instance.
/// ///
/// return [T] /// return [T]
T? get provider => _provider?.call(); T? get provider {
if (_isSingeltone) {
_instance ??= _provider?.call();
return _instance;
}
return _provider?.call();
}
} }

View File

@@ -112,9 +112,7 @@ class Scope {
case Mode.INSTANCE: case Mode.INSTANCE:
return binding.instance; return binding.instance;
case Mode.PROVIDER_INSTANCE: case Mode.PROVIDER_INSTANCE:
return binding.isSingeltone return binding.provider;
? binding.instance
: binding.provider;
default: default:
return null; return null;
} }