Конструктор класса, декорированный декоратором Injectable
, вызывается при инициализации этого класса / службы инжектором определенной области видимости.Вы не можете иметь несколько экземпляров одной и той же службы в одной области, если только вы не принудительно ее предоставите, предоставив услугу через { provide: MyService, useClass: MyService, multi: true }
.
Опция provideIn
определяет область, к которой принадлежит служба, поэтому, используяprovideIn: 'root'
говорит DI ввести сервис с помощью RootInjector.И поскольку служба не будет инициализироваться несколько раз в одной области действия, конструктор этой службы вызывается только один раз, когда DI должен внедрить эту службу в другой компонент / службу / модуль в первый раз.