проблема
Я подписываюсь на HTTPClient.get, наблюдаемый дважды. Однако это означает, что мой вызов выполняется дважды. Почему это?
доказательство
Для каждой подписки() я делаю, я получаю другую строку на странице входа.
Код (onSubmit() от кнопки входа в систему)
var httpHeaders = new HttpHeaders()
.append("Authorization", 'Basic ' + btoa(this.username + ':' + this.password));
var observable = this.httpClient.get('api/version/secured', { headers: httpHeaders});
observable.subscribe(
() => {
console.log('First request completed');
},
(error: HttpErrorResponse) => {
console.log('First request error');
}
);
observable.subscribe(
() => {
console.log('Second request completed');
},
(error: HttpErrorResponse) => {
console.log('Second request error');
}
);
Консоль
zone.js:2935 GET http://localhost:4200/api/version/secured 401 (Unauthorized)
login.component.ts:54 First request error
zone.js:2935 GET http://localhost:4200/api/version/secured 401 (Unauthorized)
login.component.ts:62 First request error
Неприемлемый фон
У меня есть объект LogonService, который обрабатывает все мои функции входа. Он содержит логическую переменную, которая показывает, вошел ли я в систему или нет. Всякий раз, когда я вызываю функцию входа в систему, он подписывается на наблюдаемый httpClient.get, чтобы установить переменную входа в true или false. Но функция входа также возвращает наблюдаемый, на который подписывается. Мне потребовалось некоторое время, чтобы связать двойной запрос с двойной подпиской. Если есть лучший способ отслеживания логина, чем через переменную, дайте мне знать! Я пытаюсь научиться угловатым :)