class PubSub {
constructor () {
this.list = new Map
}
on (event, cb) {
if (!this.list.has(event)) {
this.list.set(event, [cb])
} else {
this.list.get(event).push(cb)
}
}
emit (event, ...args) {
this.list.get(event).forEach(cb => cb(...args))
}
}
const pub1 = new PubSub
pub1.on('get', (a, b) => {console.log(a, b)})
pub1.on('get', () => {console.log(3)})
pub1.emit('get', 1, 2)