Performance: Removing listeners
MEDIUM IMPACT
This affects memory usage and event handling responsiveness by controlling how many event listeners remain active.
const EventEmitter = require('events'); const emitter = new EventEmitter(); function onData(data) { console.log('Data received:', data); emitter.removeListener('data', onData); // Remove after first use } emitter.once('data', onData); // Automatically removes after one call // ... later in code emitter.emit('data', 'sample');
const EventEmitter = require('events'); const emitter = new EventEmitter(); function onData(data) { console.log('Data received:', data); } // Adding listener multiple times without removal emitter.on('data', onData); emitter.on('data', onData); // Never removing listeners // ... later in code emitter.emit('data', 'sample');
| Pattern | Memory Usage | Event Handling Cost | CPU Overhead | Verdict |
|---|---|---|---|---|
| Multiple listeners without removal | Increases linearly | Multiple handlers run per event | High due to redundant calls | [X] Bad |
| Listeners removed after use | Stable and low | Single handler per event | Low and efficient | [OK] Good |