Рецепты
Общая асинхронная инициализация
Async Lazy Singleton для одного ресурса, совместно ожидаемого параллельными запросами.
v1.1.0Продвинутый уровеньark_di
Общая асинхронная инициализация
dart
binder.bindAsyncLazySingleton<Database>(
(resolver) => Database.open(resolver.get<AppConfig>().databasePath),
dispose: (database) => database.close(),
);
Параллельные вызовы getAsync<Database>() ожидают один выполняющийся Future. Успешный результат сохраняется, а неуспешная попытка очищается для повторного запроса. Асинхронная фабрика подходит, когда каждому вызывающему коду действительно нужен отдельный объект.