2016-12-14 194 views

回答

2

我发现我需要

import {XHRBackend, Request, XHRConnection, Response} from '@angular/http'; 
import {Observable} from 'rxjs/Observable'; 
import 'rxjs/add/operator/catch'; 
import 'rxjs/add/observable/throw'; 

export class CustomXHRBackend extends XHRBackend { 
    public createConnection(request: Request): XHRConnection { 
    let connection: XHRConnection = super.createConnection(request); 
    connection.response = connection.response 
     .catch(this.handleError); 

    return connection; 
    } 

    private handleError(error: Response | any) { 
    console.log(error['status']); 
    if(error['status'] === 401) { 
     console.log('Navigate to login page.'); 
    } 

    // <- HERE I CAN CATCH EVERY NEEDED ERROR USING switch operator 

    return Observable.throw(error); 
    } 
}