Actualización

This commit is contained in:
Xes
2025-04-10 11:37:29 +02:00
parent 4bfeadb360
commit 8969cc929d
39112 changed files with 975884 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
class EventEmitter {
constructor() {
this.observers = {};
}
on(events, listener) {
events.split(' ').forEach(event => {
this.observers[event] = this.observers[event] || [];
this.observers[event].push(listener);
});
return this;
}
off(event, listener) {
if (!this.observers[event]) return;
if (!listener) {
delete this.observers[event];
return;
}
this.observers[event] = this.observers[event].filter(l => l !== listener);
}
emit(event, ...args) {
if (this.observers[event]) {
const cloned = [].concat(this.observers[event]);
cloned.forEach(observer => {
observer(...args);
});
}
if (this.observers['*']) {
const cloned = [].concat(this.observers['*']);
cloned.forEach(observer => {
observer.apply(observer, [event, ...args]);
});
}
}
}
export default EventEmitter;