Observer.error не отправляет ошибку - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь создать промежуточный сервис между сервисом запроса и угловым компонентом, который подписывается на него.Чтобы добиться этого, я генерирую наблюдаемый запрос httpClient, который соединяется с промежуточной службой и отправляет ответ HTTP.

Когда ответ поступает в промежуточную службу, я генерирую другую наблюдаемую информацию, которая связывается с клиентским компонентом.Проблема начинается здесь.Когда я получаю 500 ответ о статусе от запроса, я получаю этот ответ в промежуточной службе, но когда я пытаюсь отправить клиентскому компоненту с subscribe.error(err), он запускает цикл, который никогда не заканчивается, получая следующую ошибку:

Вы указали неверный объект, где ожидался поток.Вы можете предоставить Observable, Promise, Array или Iterable.

Я использую тот же observer.error(err) в службе запросов и в промежуточной службе, и она корректно работает только в запросе.

Request: 
Observable.create((observer: Observer<any>) => 
this.httpClient
        .request(httpRequest)
        .subscribe(
...
(res: HttpErrorResponse) => {
            observer.error(res);
            observer.complete();
          },
          () => {
            observer.complete();
          },
}
Intermediate Service:
Observable.create((observer: Observer<any>) => 
this.requestService.request(requestServiceOptions).subscribe(
...
    (err: HttpErrorResponse) => {
            if (err.status === 401) {
              this.callbackWhenRequestFails();
            } else {
              observer.error(err);
              observer.complete();
            }
    }

1 Ответ

0 голосов
/ 06 июня 2018

Это было решено.К сожалению, при отлове ошибки я использовал return вместо throw, поэтому консоль показывала ошибку потока!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...