Most of the programs that we write handle data from different sources. These sources can be both external (files, databases, servers, and many others) and internal (different collections or branches of the same external source). There are many cases in which we'll want to have these sources depend on each other in one way or another. Defining these dependencies is a necessary step in building our programs. The idea of this chapter is to introduce the
Observable operators capable of that.
We saw an example of combined
Observable instances in the first and second chapters. Our "Reactive Sum" program had one external data source—the user input but it branched it into two internal data sources, depending on the custom format. We saw how we can use the
filter() operator instead of procedural
if-else constructions. Later, we combined these data flows into one, with the help of a combinator.
We'll learn how to react to errors from inside the...