Как я могу перехватить http ошибки с angular2?
Есть ли API, похожий на угловой 1.x Interceptor
API?
Я хочу иметь возможность добавлять перехватчики при запуске приложения, которые будут
- показывать диалог входа в систему всякий раз, когда
401
код состояния возвращается - показать общее сообщение об ошибке всякий раз, когда
5xx
код состояния возвращается
за каждый http запрос, который делает приложение.
1 ответ
Вы можете создать свой собственный 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
}
}