Я довольно новичок в angular и rxjs ... Я написал некоторый код, который я хотел бы реорганизовать, потому что я читал, что то, что я сделал, оказалось анти-паттерном: вложенные подписки наблюдаемых.
Я обыскал все места в Интернете, чтобы найти решение (надеюсь, я что-то не упустил) и понял, что мне нужно сделать, но не может применяться к моему делу: использование flatMap должно решить проблему.Вот конкретный код:
...
observable1$: Observable<any>;
observable2$: Observable<any>;
...
constructor (...) {
...
this.observable1$ = this.someStore.pipe(select(Selector.selectMyObs1));
this.observable2$ = this.someStore.pipe(select(Selector.selectMyObs2));
...
}
...
this.observable1$.subscribe(val1 => {
if (val1.error === false) {
this.observable2$.subscribe(val2 => {
this.someArray.push(val2);
});
}
});
...
Код работает каким-то образом, но я не уверен, что мне просто повезло или как.Я хотел бы знать, как переписать этот код с помощью flatMap, учитывая тот факт, что мне нужно сделать 2-ую подписку, только если 1-я не получает ошибку.