Skip to content

Instantly share code, notes, and snippets.

@ZeroDragon
Last active February 20, 2020 23:02
Show Gist options
  • Save ZeroDragon/1729ea65dd434dee59d6afdd2f42a1ef to your computer and use it in GitHub Desktop.
Save ZeroDragon/1729ea65dd434dee59d6afdd2f42a1ef to your computer and use it in GitHub Desktop.
Browser side eventEmitter
class EventEmitter {
constructor () {
this.DOM = document.createElement("p")
}
on(channel, fn) {
this.DOM.addEventListener(channel, event => {
fn(event.detail)
})
}
dispatch(channel, data) {
const detail = typeof data === 'string' ? data : JSON.stringify(data)
this.DOM.dispatchEvent(new CustomEvent(channel, { detail }))
}
}
// Usage
const myEvent = new EventEmitter()
myEvent.on('message', console.log)
myEvent.dispatch('message', 'hi browser side events') // "hi browser side events"
@ZeroDragon
Copy link
Author

flexeas bien cabrón, dude. Tengo q mejorar mucho

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment