Подписка RxJs не запускается в корневом угловом модуле
У меня есть компонент, который прослушивает http-вызовы для отображения загрузчиков. У меня есть компонент счетчика и сервис счетчика, имеющий генератор событий spinnerEvent$ Angular4. Вот мой конструктор компонентов.
constructor(
private spinnerService: SpinnerService
) {
this.subscription = spinnerService.spinnerEvent$.subscribe((spinnerEvent: any) => this.updateSpinnerState(spinnerEvent));
console.log(this.subscription);
}
Для углового применения используется ленивая загрузка. Проблема состоит в том, что я хочу добавить этот компонент в app.component.html под маршрутизатором, но при этом мой метод подписки никогда не срабатывает. Подписка отображается так, как указано в моих журналах. Когда я размещаю тот же компонент на дочерних модулях, подписка начинает работать. И компонент spinner, и служба spinner находятся в общем модуле, который был внедрен в app.module.ts. Я не уверен, что вызывает эту разницу в поведении подписки.
1 ответ
Эта проблема была исправлена, когда я переместил свой компонент и сервис Spinner из общего модуля и определил его в app.module. В настоящее время пытаюсь понять, почему, поскольку мой app.module ранее импортировал компонент из общего модуля.