this.subscription1$ .pipe( takeUntil(this.ngUnsubscribe), map((data1) => { return data1.map((data2, index) => { // we should return here the value, not the subscription return this.subscription2(index + 1).pipe( takeUntil(this.ngUnsubscribe), map((data3) => { return of(data3); }) ); }); }), ) .subscribe((data) => { console.log('FINAL: ', data); });Esa consola final muestra:
[Observable, Observable, Observable, Observable]
¿Cómo podría obtener los otros datos de suscripción directamente sin obtener ningún observable?
Depende de cómo desee combinar los resultados de la suscripción2. Si desea esperar a que se complete todo, puede usar forkJoin
this.subscription1$.pipe( takeUntil(this.ngUnsubscribe), switchMap((data1) => { return forkJoin(...data1.map((data2, index) => this.subscription2(index + 1))) }) ).subscribe((data) => { console.log('FINAL: ', data); }) Tal vez desee combineLatest para observar cambios particulares. Elija el operador adecuado aquí según su caso de uso