Вы можете использовать forkJoin из rxjs. Здесь пример того, как использовать forkJoin на примере вашего вопроса.
service.ts
constructor(private http: HttpClient) { }
requestList1$ = new Subject();
requestList2$ = new Subject();
getDynamicRequstList1() {
forkJoin(
this.getItems1(),
this.getItems2()
).subscribe(res => this.requestList1$.next(res));
}
getDynamicRequstList2() {
forkJoin(
this.getItems1(),
this.getItems2(),
this.getItems3()
).subscribe(res => this.requestList2$.next(res));
}
getItems1(): Observable<any> {
return of({
item1: 'Item 1'
});
}
getItems2(): Observable<any> {
return of({
item1: 'Item 2'
});
}
getItems3(): Observable<any> {
return of({
item1: 'Item 3'
});
}
component.ts
constructor(private service: AppService) { }
ngOnInit() {
this.service.requestList1$.subscribe(res => console.log('RES 1:::', res))
this.service.requestList2$.subscribe(res => console.log('RES 2:::', res))
}