Emitting RxJS Observable Fallback Values | Task

Ole Ersoy
Feb - 04  -  1 min

Scenario

When our Observable<E> errors out, we want to emit the string fallback value OOOPS.

Approach

oops.pipe(catchError(err => of('OOOPS')))

Demo

The first part of the demo uses throwError to error out the catchMeIfYouCan:Observable<string>, and therefore only the error handler is called, and neither the next nor the complete handlers are called.

let catchMeIfYouCan: Observable<string> = throwError("Catch me if you can");
catchMeIfYouCan.subscribe(
() => console.log("Next handler will not execute"),
e => console.log(e),
() => console.log("Completion handler will not execute")
);

In the second part we pipe through catchError and emit the fallback, and now both the next and complete handlers are called and the error handler is not called.