Правильный способ состоит в том, чтобы составить различные наблюдаемые каким-либо образом, а затем подписаться на общий поток - как вы их составите, будет зависеть от ваших точных требований.
Если вы можете сделать их все параллельно:
forkJoin(
this.service.service1(), this.service.service2(), this.service.service3()
).subscribe((res) => {
this.funcA(res[0], res[1], res[2]);
});
Если каждый зависит от результата предыдущего:
this.service.service1().pipe(
flatMap((res1) => this.service.service2(res1)),
flatMap((res2) => this.service.service3(res2))
).subscribe((res3) => {
// Do something with res3.
});
... и так далее.Существует множество различных операторов для составления наблюдаемых.