25 lines
406 B
JavaScript
25 lines
406 B
JavaScript
|
class Event {
|
||
|
constructor () {
|
||
|
this.listeners = []
|
||
|
}
|
||
|
|
||
|
addListener (callback) {
|
||
|
this.listeners.push(callback)
|
||
|
}
|
||
|
|
||
|
removeListener (callback) {
|
||
|
const index = this.listeners.indexOf(callback)
|
||
|
if (index !== -1) {
|
||
|
this.listeners.splice(index, 1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
emit (...args) {
|
||
|
for (const listener of this.listeners) {
|
||
|
listener(...args)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = Event
|