Angular 2 useExisting providers

для чего используютсяuseExisting провайдер?

это useExistingOrThrowIfThereIsNone или useExistingOrCreateIfThereIsNone? Может ли одно из этих видов поведения быть выбрано намеренно, в зависимости от наших потребностей? Если один из них не поддерживается, можно ли эмулировать неподдерживаемый?

документация совершенно неясна на этом и просто дает пример того, что useExisting можно повторно использовать экземпляр из useClass.

1 ответов


в этом примере

providers: [
    A, 
    {provide: B, useClass: A}, 
    {provide: C, useExisting: A}]

если у вас

constructor(private a: A)

создается экземпляр для первого поставщика.

constructor(private b: B)

создается экземпляр для 2-го провайдера

constructor(private c: C)

вводится экземпляр первого поставщика.

если вы начинаете с

constructor(private c: C)

создается и вводится экземпляр для первого поставщика