Я хочу общаться от детей с родителями, как описано в Угловая поваренная книга . Служба создает тему, через которую можно общаться:
progressSubject = new Subject<ProgressMessage>
Родитель подписывается на Субъект и реагирует на сообщения:
this.service.progressSubject.subscribe(msg => showProgress(msg))
Клиенты могут использовать progressSubject.next()
для отправки сообщений, что прекрасно работает.
Однако, если я хочу подписать progressSubject
на другую Наблюдаемую, все подписки прекращаются, если завершается исходная наблюдаемая. Родитель больше не будет реагировать на ввод.
let first = new Subject();
first.subscribe(this.service.progressSubject);
first.next(3); // value is processed by subscribers to progressSubject
first.complete();
let second= new Subject();
second.subscribe(this.service.progressSubject);
second.next(3); // original subcription to progressSubject is ended,
// value is not processed anymore.
Как я могу проигнорировать событие «завершить» в Субъекте, чтобы к этому Субъекту могли подключаться несколько источников?