2015-12-30 12 views
7

Esiste un'API simile all'API di angular 1.x Interceptor?Come posso intercettare gli errori http con angular2?

Voglio essere in grado di aggiungere intercettori all'avvio dell'applicazione che si

  • visualizzare la finestra di login ogni volta che un codice di 401 stato viene restituito
  • mostrano un messaggio di errore generico ogni volta che un codice di 5xx stato viene restituito

per ogni richiesta http che l'applicazione fa.

risposta

3

È possibile creare il proprio HTTPConnection che gestisce l'errore e inserirlo nel componente dell'app root in fase di bootstrap.

export class CustomHTTPConnection implements Connection 
{ 
} 

e poi iniettare mentre bootstrap come segue

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

Se si desidera non si vuole fornire una classe di connessione personalizzata, è possibile farlo per ogni singola richiesta HTTP restituisce un osservabile che, come 3 parametri: onNext, onError, onCompleted.

Si può usare come segue:

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