2016-12-09 62 views
5

Chcę złapać wszystkie błędy http, aby poinformować użytkownika o wystąpieniu problemu.Angular 2 http nie przechwytuje błąd odmowy połączenia

Stworzyłem więc metodę, która pobiera HTTP z haczykiem.

get(path: string): Promise<any> { 
    let headers = new Headers(); 
    return this.http.get(path, { headers: headers }) 
    .toPromise() 
    .then(response => { ... }) 
    .catch((response: Response) => { this.errorHandler(response); }); 
} 

Gdy parametr jest ścieżka „/ usterek url” połów jest obsługiwane zgodnie z oczekiwaniami.

Ale gdy ścieżka jest "http://localhost:5000/fault-url" błąd nie jest przechwytywany przez metodę catch. Dodałem rejestrowanie do wszystkich różnych miejsc, ale to łączy metodę get po prostu przerywa. pokazy dziennika konsoli następujące błędy

OPCJE http://localhost:5000/fault-url netto :: ERR_CONNECTION_REFUSED

WYJĄTEK: Reakcja ze statusem: 0 dla adresu URL: null

Uncaught Response {_body: ProgressEvent, status: 0, OK : false, statusText: "", nagłówki: nagłówki ...}

Czy http naprawdę się kończy, czy robię coś nie tak?

Odpowiedz

1

Po aktualizacji do Angular 2.3.0 problem jest rozwiązywany.

+0

Czy możesz podać mi szczegóły dotyczące sposobu radzenia sobie z tym błędem? – duardbr

+0

Niestety @duardbr, nie rozumiem twojego pytania. Jeśli wystąpi błąd podczas wykonywania żądania, funkcja catch zwraca przyczynę niepowodzenia. Ten powód może na przykład zostać użyty do poinformowania użytkownika. –