ReactiveX

For sequences of data, it combines the advantages of iterators with the flexibility of event-based asynchronous programming.

It also works as a simple promise, eliminating the pyramid of doom that results from multiple layers of callbacks.

The sequence then sends the items to the observer one at a time, usually by calling the provided callback function.

It is similar to the iterators pattern in that if a fatal error occurs, it notifies the observer separately (by calling a second function).

Examples include: Operators can be chained together to create complex data flows that filter events based on certain criteria.

Some of the operators that can be used in Reactive Extensions may be familiar to programmers who use functional programming language, such as map, reduce, group, and zip.

The reduce operator will then sum up all the numbers provided to it (the value of 0 is the starting point).

The above example uses the RxJS implementation of Reactive Extensions for the JavaScript programming language.

Reactive Extensions (Rx) was created by the Cloud Programmability Team at Microsoft around 2011, as a byproduct of a larger effort called Volta.