Skip to content

Instantly share code, notes, and snippets.

@linyongping
Created April 10, 2018 15:08
Show Gist options
  • Select an option

  • Save linyongping/b4baf1f4870ccd7ede35d3c70f3fcdf4 to your computer and use it in GitHub Desktop.

Select an option

Save linyongping/b4baf1f4870ccd7ede35d3c70f3fcdf4 to your computer and use it in GitHub Desktop.
eventEmitter.js
class EventEmitter {
constructor(eventMap = new Map()) {
this.eventMap = eventMap
}
addEventListener(event, handler) {
if(this.eventMap.has(event)) {
this.eventMap.set(event, this.eventMap.get(event).concat([handler]))
}else {
this.eventMap.set(event, [handler])
}
}
dispatchEvent(event) {
if(this.eventMap.has(event)) {
const handlers = this.eventMap.get(event)
for(const i in handlers) {
handlers[i]()
}
}
}
}
export default EventEmitter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment