Reactive programming basically has to do with the flow of data in an application. Take for example you want to make coffee but you do not have milk. There are several ways to do this
Or you could do
The first method is obviously more efficient than the latter. Why did I give this example? The first example works on the same principle as javascript(asynchronous) requests. While the second is a blocking mechanism.
Another example of reactive programming is Pub-sub(publisher-subscriber), one or more subscribers listen for a publisher and reacts according to the data provided by the publisher. A subscriber is not bound to a publisher, it can easily remove itself from listening to the publisher. Provides a lot more freedom and is reactive.
Basically you can say reactive programming is making a set of linear instructions into an asynchronous bunch.