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]
Binding<T> singeltone() {
if (_mode == Mode.PROVIDER_INSTANCE) {
_instance = _provider?.call();
}
_isSingeltone = true;
return this;
}
@@ -113,5 +110,11 @@ class Binding<T> {
/// ENG: Resolve instance.
///
/// 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:
return binding.instance;
case Mode.PROVIDER_INSTANCE:
return binding.isSingeltone
? binding.instance
: binding.provider;
return binding.provider;
default:
return null;
}