An implementation of task/event based asynchronous pattern
...EventProxy also provides standard emitter operations such as on, once, emit, and listener removal. It works in Node.js and browsers and supports CommonJS, AMD, and CMD module environments.