2015-12-30 3 views
7

Есть ли API, похожий на угловой 1.x's Interceptor API?Как перехватить HTTP-ошибки с помощью angular2?

Я хочу, чтобы иметь возможность добавлять перехватчики при запуске приложения, которое будет

  • показать диалоговое окно входа в систему, когда код 401 статус возвращается
  • показать общее сообщение об ошибке, когда код 5xx статус возвращается

для каждого запроса http, которое делает приложение.

ответ

3

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

export class CustomHTTPConnection implements Connection 
{ 
} 

, а затем вводит его в то время самонастройки следующего

bootstrap([provider(Connection,{useClass:CustomHTTPConnection}]); 

Если вы хотите не хотите, чтобы обеспечить пользовательский класс соединения, вы можете сделать это для каждого запроса, как Http возвращает наблюдаемый, который, как 3 параметра: onNext, onError, onCompleted.

Вы можете использовать его следующим образом:

class Component 
{ 
constructor(private httpService:HttpService){ 
} 
onInit(){ 
this.httpService.getData().subscribe(
()=>{}, //on Next 
()=>{} //onError 
} 
}