Первый обратный вызов к subscribe
известен как обратный вызов next
, который вызывается всякий раз, когда наблюдаемое излучает значение. Если есть ошибка, вызывается обратный вызов error
, который может быть предоставлен в качестве второго параметра для subscribe
(есть другие альтернативы). Причина, по которой вы не видите свой alert
огонь, когда не с использованием responseType: 'text'
, заключается в том, что предоставленная вами функция обратного вызова не вызывается при возникновении ошибки.
Как я уже предлагал, одним из вариантов будет предоставление обратного вызова с ошибкой. Вот пример:
this.httpClient.post(
'http://localhost:8080/users',
{ username, email, password },
{ observe: 'response' })
.subscribe(
response => {
// Only called for success.
...
},
errorResponse => {
// Called when there's an error (e.g. parsing failure).
if (errorResponse.status === 200) {
alert('Hello (for real this time)!');
}
});
Перечитав оригинальный вопрос здесь, я думаю, что ваша настоящая проблема может заключаться в том, что вы не комбинируете responseType: 'text'
и observe: 'response'
. Вот как это будет выглядеть:
this.httpClient.post(
'http://localhost:8080/users',
{ username, email, password },
{ observe: 'response', responseType: 'text' })
.subscribe(response => {
if (response.status === 200) {
alert('Hello!');
}
});