Я думаю, что это может сделать работу:
of(1).pipe(
switchMap(res => forkJoin(of(res), of(2))), // Returns [1, 2]
switchMap(res => forkJoin(...res.map(v => of(v)), of(3))), // forkJoin(of(1), of(2), of(3))
switchMap(res => forkJoin(...res.map(v => of(v)), of(4))),
).subscribe(console.log) // 1, 2, 3, 4]