Ниже приведен фрагмент кода компонента в моем приложении, где я подписываюсь на несколько наблюдаемых и загружаю данные [вызов API] после получения значений соответственно.
ngOnInit() {
this.combinedObservable$ = combineLatest(
this.service1.getStudentId(),
this.service2.getTeacherId(),
this.service3.getResultId(),
this.service4.getReportId(),
this.service5.getYearId(),
).subscribe(value => {
this.studentId = value[0];
this.teacherId = value[1];
this.resultId = value[2];
this.reportId = value[3];
this.yearId = value[4];
// Load Data for the page by making an api call
this.loadData(value[0], value[1], value[2], value[3], value[4]);
});
}
ngOnDestroy() {
this.combinedObservable$.unsubscribe();
}
CombineLatest работает для меня в этом сценарии Однако loadData вызывается несколько раз. Я полагаю, что это происходит из-за наблюдаемых, испускающих значения после их обновления. Начальные значения для [studentId, teacherId, resultId, reportId, yearId] из сервиса устанавливаются в 0, чтобы обслужить объединить последние.
Можно ли каким-либо образом вызвать метод LoadData [вызов API] после получения всех 5 значений [не intialvalues 0]? Что-то вроде onComplete?