Não sei em qual parte do curso você esta, mas eu ensino isso através do switchMap quando você vai adicionar um comentário. O primeiro observable adiciona e o segundo, que só pode ser chamado quando o primeiro concluir, busca os comentários novamente.
Segue um esquema simplificado para você pode ajudar:
observable1
.fazAlgo('123') // devolve um observable
.pipe(switchMap(emissaoObservable1 => {
// observable2 depende do retorno do observable anterior
return observable2.fazAlgo(emissaoObservable1);
})
.pipe(switchMap(emissaoObservable2 => {
// observable3 depende do retorno do observable anterior
return observable3.fazAlgo(emissaoObservable2);
}).subscribe(emissaoObservable3 => {
// faz algo aqui
});
Ou você pode simplificar para:
observable1
.fazAlgo('123') // devolve um observable
.pipe(switchMap(emissaoObservable1 =>
observable2.fazAlgo(emissaoObservable1)
)
.pipe(switchMap(emissaoObservable2 =>
observable3.fazAlgo(emissaoObservable2)
)
.subscribe(emissaoObservable3 => {
// faz algo aqui
});
Lembre-se que o switchMap para a emissão do observable anterior e passa o controle para o próximo. Veja que o resultado de cada observable foi passado para o próximo.
Sucesso e bom estudo!