mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-20 16:49:52 +00:00
22 lines
537 B
JavaScript
22 lines
537 B
JavaScript
export default class Emitter {
|
|
on(event, callback) {
|
|
const eventListeners = this._listeners[event] || [];
|
|
eventListeners.push(callback);
|
|
this._listeners[event] = eventListeners;
|
|
const unsubscribe = () => {
|
|
this._listeners[event] = eventListeners.filter(cb => cb !== callback);
|
|
};
|
|
return unsubscribe;
|
|
}
|
|
|
|
trigger(event, ...args) {
|
|
const callbacks = this._listeners[event];
|
|
if (callbacks) {
|
|
callbacks.forEach(cb => cb(...args));
|
|
}
|
|
}
|
|
|
|
constructor() {
|
|
this._listeners = {};
|
|
}
|
|
}
|