Skip to content

Instantly share code, notes, and snippets.

@Lcfvs
Created March 14, 2021 11:17
Show Gist options
  • Select an option

  • Save Lcfvs/c307b7ea102193ab8ea6dc8d2ed2e4ef to your computer and use it in GitHub Desktop.

Select an option

Save Lcfvs/c307b7ea102193ab8ea6dc8d2ed2e4ef to your computer and use it in GitHub Desktop.
A simple event emitter, without any lib dedicated to.
import * as etched from 'https://unpkg.com/@etchedjs/etched@latest/etched.min.js'
const emitter = etched.model({
set event (value) {
console.log('event `event` emitted on `emitter` with value', value)
}
})
const emitter2 = etched.model(emitter, {
set event (value) {
console.log('event `event` emitted on `emitter2` with value', value)
}
})
etched.etch(emitter, { event: 123 }) // 'event `event` emitted on `emitter` with value', 123
etched.etch(emitter, { event: 456 }) // 'event `event` emitted on `emitter` with value', 456
etched.etch(emitter, { event: 789 }) // 'event `event` emitted on `emitter` with value', 789
etched.etch(emitter2, { event: 123 }) // 'event `event` emitted on `emitter` with value', 123 AND 'event `event` emitted on `emitter2` with value', 123
etched.etch(emitter2, { event: 456 }) // 'event `event` emitted on `emitter` with value', 456 AND 'event `event` emitted on `emitter2` with value', 456
etched.etch(emitter2, { event: 789 }) // 'event `event` emitted on `emitter` with value', 789 AND 'event `event` emitted on `emitter2` with value', 789
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment