JS Built-ins
DesignPatternsintermediate

Observer β€” Listener count

πŸ“– Usage Example
emitter.on(handler1);
emitter.on(handler2);
emitter.listeners.length; // 2

Track how many subscribers are registered by checking the listeners array length.

Observer Pattern β€” Tracking Listener Count

An observer system can track how many listeners are subscribed to each event.

Challenge: Implement an EventEmitter with a listenerCount(eventName) method that returns the number of subscribers for that event.

Example:

const emitter = new EventEmitter()
emitter.listenerCount('data') // 0
emitter.on('data', () => {})
emitter.listenerCount('data') // 1
emitter.on('data', () => {})
emitter.listenerCount('data') // 2
πŸ’‘ Hints (3)
  • β€’ Use listenerCount to return the length of the listener array
  • β€’ Initialize empty array if event has no listeners yet
  • β€’ Keep track of listeners per event name