Reactive programming is programming with asynchronous data streams. An Angular application is a reactive system.
There are many ways to implement event streams or reified reactive programming. Angular embraced RxJS, and the EventEmitter class is just an implementation of RxJS/Observable.
In RxJS, you represent asynchronous data streams using observable sequences or also just called observables.