Reactive programming
In the previous section, we looked at promises and futures, trying to get a thorough understanding of the way they work and presenting two popular promises frameworks that help you use promises in your programs. Here, we will consider a completely different approach to asynchronous computation, Reactive Programming (RP). The basic idea behind RP is that of asynchronous data streams, such as the stream of events that are generated by mouse clicks, or a piece of data coming through a network connection. Anything can be a stream; there are really no constraints. The only property that makes it sensible to model any entity as a stream is its ability to change at unpredictable times. The other half of the picture is the idea of observers, which you can think of as agents that subscribe to receive notifications of new events in a stream. In between, you have ways of transforming those streams, combining them, creating new streams, filtering them, and so on.
Note
A related but...