brian-assistant / tests

0 stars 0 forks source link

Implement task #74 - event emmiter #75

Open brian-ai-assistant[bot] opened 1 year ago

brian-ai-assistant[bot] commented 1 year ago

Event Emitter Class

Here is the implementation of the event emitter class:

class EventEmitter {
  constructor() {
    this.events = {};
  }

  subscribe(eventName, listener) {
    if (!this.events[eventName]) {
      this.events[eventName] = [];
    }

    this.events[eventName].push(listener);
  }

  unsubscribe(eventName, listener) {
    if (this.events[eventName]) {
      this.events[eventName] = this.events[eventName].filter((l) => l !== listener);
    }
  }

  emit(eventName, ...args) {
    if (this.events[eventName]) {
      this.events[eventName].forEach((listener) => listener(...args));
    }
  }
}

Explanation:

Commit Message: Implement event emitter class