28 lines
620 B
JavaScript
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);
|
|
}
|
|
}
|
|
}
|