У меня есть случай подписки внутри другой подписки, и мы знаем, что это плохо. Проблема в том, что я не знаю, как решить ее здесь:
this.backendService.doSomething().subscribe(
() => { },
err => {
this.someService.showOkMessage('title', 'you got an error')
.subscribe(); // The bad guy
},
() => {
// should not be called if there is an error
this.someService.showOkMessage('title', 'everything is fine')
.subscribe(); // Another bad guy
}
}
Я пробовал что-то вроде этого:
this.backendService.doSomething().pipe(
catchError(errMsg => {
return someService.showOkMessage('title', 'you got an error').map(() => true));
)},
switchMap(isError =>
if(!isError) return someService.showOkMessage('title', 'everything is fine');
)
).subscribe();
Это работает, но я не чувствую себя хорошо, я не Я не хочу преобразовывать / изменять поток, он должен просто закончиться.