Spec-Zone.ru › Angular

injectAsync

Вспомогательная функция для асинхронного внедрения зависимостей. Она может быть полезна, если зависимость не требуется сразу и может загружаться лениво.

Ленивая загрузка сервисовКонтекст внедрения

API

function injectAsync<T>(
  loader: () => Promise<ProviderToken<T>>,
  options?: InjectAsyncOptions | undefined,
): () => Promise<T>;
function injectAsync<T>(
  loader: () => Promise<DefaultExport<ProviderToken<T>>>,
  options?: InjectAsyncOptions | undefined,
): () => Promise<T>;
function injectAsync<T>(loader: () => Promise<ProviderToken<T>>, options?: InjectAsyncOptions | undefined): () => Promise<T>;

Вспомогательная функция для асинхронного внедрения зависимостей. Она может быть полезна, если зависимость не требуется сразу и может загружаться лениво.

ПРИМЕЧАНИЕ: Чтобы включить ленивую загрузку, внедряемый сервис должен предоставляться автоматически. Это означает, что он должен быть декорирован либо с помощью @Injectable({providedIn: 'root'}), либо с помощью @Service().

@paramloader() => Promise<ProviderToken<T>>

Функция, возвращающая промис, который разрешается в внедряемый сервис

@paramoptionsInjectAsyncOptions | undefined

Параметры конфигурации для асинхронного внедрения

@returns() => Promise<T>

Функция, возвращающая промис, который разрешается в запрошенный экземпляр сервиса.

Примечания по использованию
class MyCmp {
 someSvc = injectAsync(() => import('..'));

 async onClick() {
   (await this.someSvc()).handleClick();
 }
}

// we can also configure prefetching:
injectAsync(.., {prefetch: onIdle})
function injectAsync<T>(loader: () => Promise<DefaultExport<ProviderToken<T>>>, options?: InjectAsyncOptions | undefined): () => Promise<T>;
@paramloader() => Promise<DefaultExport<ProviderToken<T>>>
@paramoptionsInjectAsyncOptions | undefined
@returns() => Promise<T>

Описание

Вспомогательная функция для асинхронного внедрения зависимостей. Она может быть полезна, если зависимость не требуется сразу и может загружаться лениво.

ПРИМЕЧАНИЕ: Чтобы включить ленивую загрузку, внедряемый сервис должен предоставляться автоматически. Это означает, что он должен быть декорирован либо с помощью @Injectable({providedIn: 'root'}), либо с помощью @Service().

Примечания по использованию

class MyCmp {
 someSvc = injectAsync(() => import('..'));

 async onClick() {
   (await this.someSvc()).handleClick();
 }
}

// we can also configure prefetching:
injectAsync(.., {prefetch: onIdle})

Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/core/injectAsync

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API