Node.js & Libuv•Part 3: Streams, Buffers & Core Modules (21 - 35)
The EventEmitter Class & `MaxListenersExceededWarning`.
In Simple Words: Maintains internal arrays of listener functions per event name. Default warning threshold is 10 listeners per event. If exceeded, Node.js logs a warning to prevent memory leaks from forgotten listeners.
javascript
const EventEmitter = require('events');
const emitter = new EventEmitter();
// Increase limit if intentional:
emitter.setMaxListeners(20);
// Always remove listeners when finished to prevent memory leaks:
const onData = (data) => console.log(data);
emitter.on('data', onData);
emitter.off('data', onData);