Rx framework – IObservable<T>.Catch and IObservable<T>.OnErrorResumeNext

Yan Cui

I help clients go faster for less using serverless technologies.

Like IObservable<T>.Concat, the IObservable<T>.Catch extension method concatenates an observable collection with another.

However, unlike the Concat method where the subscription to the second observable collection happens after the first had completed, in the Catch method the subscription to the second collection happens after and only after the first had excepted!

Which begs a very good question:

What if I want to concatenate an observable collection with another regardless of whether the first succeeds or not?

Well, the answer to that question is IObservable<T>.OnErrorResumeNext, which always subscribes to the second observable collection at the end of the first.

image

Like so many other merge-type extension methods in Rx, there are two flavours to choose from when using the Catch or OnErrorResumeNext methods. Either as extension method:


var zs = xs.Catch(ys);

var zs2 = xs.OnErrorResumeNext(ys);

or as static methods which give you the option to merge more than two observable collections:


var zs = Observable.Catch(xs, ys, us, vs);

var zs2 = Observable.OnErrorResumeNext(xs, ys, us, vs);


Whenever you’re ready, here are 3 ways I can help you:

  1. Production-Ready Serverless: Join 20+ AWS Heroes & Community Builders and 1000+ other students in levelling up your serverless game.
  2. Consulting: If you want to improve feature velocity, reduce costs, and make your systems more scalable, secure, and resilient, then let’s work together and make it happen.
  3. Join my FREE Community on Skool, where you can ask for help, share your success stories and hang out with me and other like-minded people without all the negativity from social media.

 

2 thoughts on “Rx framework – IObservable<T>.Catch and IObservable<T>.OnErrorResumeNext”

  1. Pingback: Rx framework — IObservable<T>.Repeat | theburningmonk.com

  2. Pingback: Rx framework — IObservable<T>.Retry | theburningmonk.com

Leave a Comment

Your email address will not be published. Required fields are marked *