Yan Cui
I help clients go faster for less using serverless technologies.
This article is brought to you by
Don’t reinvent the patterns. Catalyst gives you consistent APIs for messaging, data, and workflow with key microservice patterns like circuit-breakers and retries for free.
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.
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:
- Production-Ready Serverless: Join 20+ AWS Heroes & Community Builders and 1000+ other students in levelling up your serverless game. This is your one-stop shop for quickly levelling up your serverless skills.
- I help clients launch product ideas, improve their development processes and upskill their teams. If you’d like to work together, then let’s get in touch.
- Join my community on Discord, ask questions, and join the discussion on all things AWS and Serverless.
Pingback: Rx framework — IObservable<T>.Repeat | theburningmonk.com
Pingback: Rx framework — IObservable<T>.Retry | theburningmonk.com