ModelHandle/source/engine/core/eventsource.js
2022-07-02 22:25:34 +02:00

28 lines
620 B
JavaScript

export class EventSource
{
constructor ()
{
this.eventListeners = new Map ();
}
AddEventListener (name, listener)
{
if (!this.eventListeners.has (name)) {
this.eventListeners.set (name, []);
}
let listeners = this.eventListeners.get (name);
listeners.push (listener);
}
NotifyEventListeners (name, ...args)
{
if (!this.eventListeners.has (name)) {
return;
}
let listeners = this.eventListeners.get (name);
for (let listener of listeners) {
listener (...args);
}
}
}