обрабатывать коды состояния HTTP в Angular 5 - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь перехватить коды состояния http в angular в службе, которая вызывает бэкэнд-сервис, у меня возникают проблемы, когда я вижу статус 204, но при записи в журнал angular show status null, вот что я делаю в своей обслуживание:

return this.http.get<JSON>(mybackendsserviceurl)
      .do(res => {
      })
      .catch(res => {
        return this.handleError(res);
      });
  }

  private handleError(err: HttpErrorResponse) {
    console.log(err.message);
    return Observable.throw(err.message);
  }

Как отлавливать различные ошибки в бэкэнд-сервисе, например, 204,403,404,500 ... и т. Д., И отображать удобное сообщение для каждой ошибки? Мой веб-интерфейс вызывает службу из API-шлюза, и я устанавливаю ошибки в Интеграциях ответов.

1 Ответ

0 голосов
/ 30 августа 2018

Для обработки различных кодов состояния просто проверьте их:

this.http.get<JSON>(<URL>)
    .subscribe( 
        res => console.log(res), 
        err => {
            console.error(err);
            this.handleError(err);
        });


private handleError(err: HttpErrorResponse) {
    if( err.status == 500 ) {

        return Observable.throw(new Error(<YOUR USERFRIENDLY MESSAGE>));

    } else if( err.status == 400 ) {

        return Observable.throw(new Error(<YOUR MESSAGE>));
    }

    // you can also catch all errors of a group like this
    else if( err.status < 500 && err.status >= 400 ) {

        return Observable.throw(new Error(<CLIENT ERROR MESSAGE>));
    }
}

В вашем пользовательском интерфейсе вы можете обработать Observable и, конечно, показать приятный диалог с сообщением об ошибке.

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