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 don't know if this could work for you but I have solved a similar situation doing this
I used a jQuery implementation of deferreds in node. Hope this could give you some ideas