What I'm considering for an async event emitter is a situation like this:
- I want to be able to fire events before something happens and after something happens.
- Each of the event handlers may do an async process.
- I need to know after all of the "before" event handlers have completed before doing the actual action that I'm saying will happen.
A synchronous example would look like:
emitter.emit('beforewrite');
doWrite();
emitter.emit('afterwrite');
The challenge is that the event handlers may all be doing async operations, so I need to wait until all of them have completed before doing the write operation.
Thoughts?
I'm sure someone has built an EventEmitter that has some sense of a lifecycle, but here's my stab at something like it in a few minutes. :)
AsyncEmitter.js
Usage Example