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ż:

https://medium.com/@luukgruijs/understanding-creating-and-subscribing-to-observables-in-angular-426dbf0b04a3