У меня есть родительский компонент, который включает в себя два дочерних компонента. Каждый из дочерних элементов имеет собственную сетевую нагрузку, и мне нужно знать в родительском компоненте, когда оба дочерних элемента закончили с сетевыми нагрузками. Я предполагал, что могу использовать наблюдаемое для этого, но у меня это не сработало. В обоих моих дочерних компонентах я сделал это:
private _loadFinished = new BehaviorSubject<boolean>(null);
loadFinished = this._loadFinished.asObservable();
networkLoad() {
this.network.doLoad().subscribe(x => {
this._loadFinished.next(true);
});
}
В родительском HTML я пометил каждый дочерний компонент, а затем в коде я сделал это:
@ViewChild('orgMetrics') orgMetrics: ChildComponentOne;
@ViewChild('campusMetrics') campusMetrics: ChildComponentTwo;
loading = true;
ngOnInit(): void {
forkJoin(
this.orgMetrics.loadFinished,
this.campusMetrics.loadFinished
).subscribe(() => {
console.info("I got here");
this.loading = false;
}, () => this.loading = false);
}
}
subscribe
никогда не получает удар, хотя. Я иду в совершенно неправильном направлении? Я также смотрел на en EventEmitter
, но я не понимал, как я буду ждать выполнения обоих действий, прежде чем действовать.