Лично я ничего не имею против множественных .subscribe
, если ваши вызовы RXJS на самом деле не должны быть связаны. Однако, если вы должны сделать 2 вызова, да, вы должны concatMap
вместе.
Еще одна вещь, которая очистит ваш код, это знание того, завершится поток на самом деле или нет. На мой взгляд, это недостаток в RXJS, потому что я не знаю, является ли сделанный вами вызов однократным или потоковым.
Если вы делаете один http-запрос и не ожидаете сохранить потокоткрыт, то вам не нужно сохранять подписку ни на один из ваших вызовов RXJS. Однако, если вы планируете держать поток открытым, я бы порекомендовал метод ngOnDestroy
. Вы можете прочитать больше об этом «Не забудьте отписаться» и, возможно, вам стоит взглянуть на ту же концепцию, но сказать вам обратное: «Не отписываться» :)
Кроме того, вы должны прочитать немного больше о вашем throwError
. Они должны технически пузыриться. Лучший способ научиться это самому кодировать, я бы порекомендовал вам создать холодную наблюдаемую систему с именем login $ (), которая делает все, что вы должны делать. Только вызов .subscribe () для него вернет завершено наблюдаемый.
Так как другие люди уже прокомментировали, как кодировать, я не буду здесь кодировать, но вы должны дать еговыстрел!