Первый метод является асинхронным и не возвращает ничего, что является проблемой. Вместо подписки внутри этого метода вы должны вернуть наблюдаемое. Затем в ngAfterViewInit
вы можете подписаться на него и вызвать второй метод, когда он будет завершен.
Я не уверен, нужно ли вам возвращать что-либо в вашем Observable для другого, поэтому Observable<void>
или другой возврат может быть более подходящим.
Новый метод pu sh
private inicializarListaGrupoAnaliseCae(): Observable<void> {
return this.grupoAnaliseCaeService
.findAll()
.pipe(
tap(res => {
res.forEach((grupoAnaliseCae: GrupoAnaliseCae) => {
if(grupoAnaliseCae.nuNivelGrupo==null){
this.listaGrupoAnaliseCae.push({ label: grupoAnaliseCae.noGrupoAnaliseCae, value: grupoAnaliseCae });
this.formataNomeGrupo();
}
});
})
);
}
New ngAfterViewInit
ngAfterViewInit(): void {
this.inicializarListaGrupoAnaliseCae().subscribe(() => {
this.iniciarDadosVisualizar();
//this.iniciarSituacaoCadastro();
this.cdr.detectChanges();
});
}
Обратите внимание, я не управляю подпиской Вот. Если ваш метод findAll () является HTTP-запросом, он должен завершиться после загрузки данных, поэтому это не будет проблемой, но если это что-то еще, вам может потребоваться выяснить, как вы хотите отказаться от подписки.