The lifeblood of Rx is managing asynchronous tasks without the indirection and potential confusion of non-Rx C# programs. Without Rx, it is common to have asynchronous callbacks that make asynchronous calls to other asynchronous callbacks, creating spaghetti code; the very reason we don't use
GoTo very much anymore. With Rx your asynchronous code can be packed into a single method, making for more readable and maintainable code.
In Chapter 3, you saw some of the core operators of Rx; here in Chapter 4, you'll learn how to apply these core concepts of creating working applications. We'll take a look at some of the more advanced operators and then we'll dig deep into a more extensive example.
We begin with a discussion ...