Obsługa błędów
Jeśli pojawi się coś nieoczekiwanego, możemy zgłosić błąd w strumieniu Observable
i użyć funkcji zarezerwowanej do obsługi błędów w naszej procedurze subscribe
, aby zobaczyć, co się stało.
export class AppComponent {
private data: Observable<number>;
private values: Array<number> = [];
private anyErrors: "";
init() {
this.data = new Observable(observer => {
setTimeout(() => {
observer.next(10)
}, 1500);
setTimeout(() => {
observer.error('Hey something bad happened I guess');
}, 2000);
setTimeout(() => {
observer.next(50)
}, 2500);
});
let subscription = this.data.subscribe(
value => this.values.push(value),
error => this.anyErrors = error
);
}
}
Zobacz przykład [041]
Należy zwrócić uwagę na to, że gdybyśmy dodali obsługę zakończenia ( trzeci parametr subscribe, onComplete()
) - po pojawieniu się błędu, to zdarzenie faktycznie nie zostanie wywołane.
Dlatego należy pamiętać o dołączeniu wywołania błędu do programu obsługi błędów- inaczej może pojawić się w naszej aplikacji wizualny efekt ładowania w nieskończoność.....
Zobacz też: