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