EventEmitter is the foundation of event-driven architecture in Node.js. Here's how to use it.
Basic Usage#
Loading code block...
Event Methods#
Loading code block...
Extending EventEmitter#
Loading code block...
Error Handling#
Loading code block...
Async Events#
Loading code block...
Event Patterns#
Loading code block...
Configuration#
Loading code block...
Memory Management#
Loading code block...
Real-World Examples#
Loading code block...
Best Practices#
Event Design:
✓ Use descriptive event names
✓ Document event signatures
✓ Emit errors as 'error' event
✓ Keep payloads serializable
Memory:
✓ Remove listeners when done
✓ Use once() for one-time events
✓ Set appropriate maxListeners
✓ Clean up in stop/destroy
Patterns:
✓ Extend EventEmitter for OOP
✓ Use event bus for decoupling
✓ Promisify with once()
✓ Handle errors consistently
Avoid:
✗ Too many listeners per event
✗ Forgetting to clean up
✗ Synchronous heavy work in handlers
✗ Circular event emissions
Conclusion#
EventEmitter enables powerful event-driven patterns in Node.js. Extend it for custom classes, use proper error handling, and clean up listeners to prevent memory leaks. The once() method and promisified events work well with async/await patterns.