Внедрение угловых зависимостей, время жизни сервисов

Есть вопросы относительно времени жизни сервисов Angular. Мое текущее понимание состоит в том, что если вы вводите службу в компонент, и служба предоставляется в массиве поставщиков этого компонента, тогда служба будет уничтожена, когда компонент будет уничтожен.

Вот пример, который будет менее абстрактным:

@Component({
  selector: 'app-offline-header',
  templateUrl: './offline-header.component.html',
  styleUrls: ['./offline-header.component.css'],
  providers: [WebsocketService]
})

export class OfflineHeaderComponent{ 
  constructor(private socket: WebsocketService) {}
}

В приведенном выше примере WebsocketService вводится на уровне этого компонента, а не в app.module (или другом модуле). Итак, если этот компонент будет уничтожен, экземпляр службы также будет уничтожен?

Вопросов:

  1. Когда этот компонент уничтожается, уничтожается ли также экземпляр WebsocketService?

  2. Если бы мы должны были предоставлять эти услуги в корневом модуле (app.module), будет ли тогда служба одноэлементной? Если это так и служба является синглтоном, когда создается этот синглтон?


person Willem van der Veen    schedule 05.05.2018    source источник


Ответы (1)