So what the reason here to invent new approaches and libraries? The reason is the same, why we use promises: as much as possible avoid callbacks, working with asynchronous code. But in case of events we can’t use promises, because of it’s design:
var EE = require('events').EventEmitter;
We can’t controll the moment of executing function and it doesn’t follow callbacks convention.
The most common use cases of event streams probably are
debounce. Here a small playground to imagine them.