About this Book
Asynchronous code is something the human brain never seems quite able to understand. Its behavior is, at best, difficult to synthesize and, at worst, completely nondeterministic.
We, as programmers, have been to the dark side and seen what happens when code is written with a series of timeouts and callbacks. We’ve tried to keep up with all the possible outcomes and implications of a block of code where asynchronous execution is involved. We’ve handled new failure cases because we now have to face cases where our code executes out of order. And we’ve seen the type of chaos that nested callbacks and global state bring to code that can execute out of order.
Moreover, the amount of data that we’re processing these days, both on the client side and on the server side, means that we can’t spend our time sweating the small stuff. We shouldn’t reinvent the wheel every time we have data coming over the wire. And the paradigm that we use should include the necessary constructs for free so that we can simply layer our business logic on top.
Reactive programming, and RxJS in particular, gives us the tools to build pipelines to move our data through without worrying about the boilerplate underneath. And it does so using concepts distilled from functional programming to give us clean, readable syntax that will be useful six months from now.