Изучение
Async-разрешение
Предсказуемое разрешение async-зависимостей и одна in-flight инициализация Lazy Singleton.
v0.1.0-dev.1Продвинутый уровеньark_di
Async-разрешение
get<T>() работает предсказуемо: он не блокирует выполнение и не возвращает Future. Синхронный запрос async-регистрации завершается DiAsyncResolutionRequiredException; для него предназначен getAsync<T>().
Async Factory начинает новую операцию для каждого запроса. Async Lazy Singleton объединяет параллельные запросы в одну in-flight инициализацию и сохраняет только успешный результат.
text
caller A ─┐
caller B ─┼─→ один Future инициализации → один Singleton
caller C ─┘
После ошибки неуспешная попытка очищается, и следующий запрос может повторить инициализацию. Resolver Factory позволяет зафиксировать зависимости для диагностики циклов и планирования teardown.