Вы не должны использовать toPromise()
, когда это возможно. Используйте подписаться вместо того. Кроме того, когда вы перехватываете ошибку в канале, она не будет добавлена, потому что вы уже перехватили ее, также, когда вы выдает ошибку в ошибке перехвата, она не будет отправлена в обычный поток канала вашего ответа.
callApi() {
return this.http.get(`${this.baseUrl}/someapi`);
}
Это совершенно нормально. Http.get()
возвращает одноэлементный наблюдаемый поток, который выдает только ОДНО значение и затем завершается Подпишитесь на Observable
.
this.someService.callApi()
.subscribe((response) => {
// THIS GETS CALLED always wenn everything is ok
this.someVar = response;
},
(error:HttpErrorResponse) =>{
console.log(`Custom error message here. error ${error.message}`);
this.displayErrorGettingToken();
});
Observable
похоже на расширенную версию обещания. Используй это.