Asynchronous Reactive Programming
Angular provides the RxJS (Reactive Extensions for JavaScript) library to use the asynchronous reactive programming paradigm which are concerned with data streams and the propagation of change.
It makes use of observables, allowing for the easier composition of asynchronous or callback-based code.
RxJS provides an implementation of the Observable type, which is needed, until the type becomes part of the language and until browsers support it. The library provides utility functions that can be used for:
Converting existing code needed for async operations into observables
Iterating through values in a stream
Mapping values to different types
Filtering streams
Creating multiple streams