Почему в вашем случае не работает switchMap? Я думаю, что это лучшее решение, switchMap получает результат потока и возвращает другое наблюдаемое для продолжения потока:
onStartUp() {
this.recordingService.getRecording(this.id)
.switchMap((x) => {
this.recording = x;
const params = new Chunk(this.recording, 0, 30);
return this.recordingService.getSignal(params);
})
.subscribe(data => console.log(data));
}
Если вы используете конвейерные операторы:
import { switchMap } from 'rxjs/operators';
this.recordingService.getRecording(this.id)
.pipe(
switchMap((x) => {
this.recording = x;
const params = new Chunk(this.recording, 0, 30);
return this.recordingService.getSignal(params);
})
)
.subscribe(data => console.log(data));