QA
Beginner LevelNode JS

How does the EventEmitter class work in Node.js (on, emit, once, removeListener)?

❓ Interview Prompt: Explain `node:events` module, EventEmitter pattern, registering listeners (`on`, `once`), emitting events (`emit`), and memory leaks.

The 'EventEmitter' class in 'node:events' underpins core Node.js objects (HTTP servers, streams, sockets):

Key Methods:

•
'on(event, listener)': Registers persistent event listener callback.
•
'once(event, listener)': Registers listener executed ONLY ONCE, then automatically removed.
•
'emit(event, ...args)': Synchronously calls all registered listeners with arguments.

Code Implementation Example

javascript
import { EventEmitter } from 'node:events';

class OrderTracker extends EventEmitter {
  placeOrder(orderId) {
    console.log('Order placed: ${orderId}');
    this.emit('order:placed', { orderId, timestamp: Date.now() });
  }
}

const tracker = new OrderTracker();
tracker.on('order:placed', (data) => {
  console.log('Sending email for order #${data.orderId}');
});

tracker.placeOrder('1052');
💡Creating custom EventEmitter classes and publishing event topics.
🎯 Interview Key Takeaway

Use EventEmitter to build decoupled event-driven modules in Node.js.

#EventEmitter#Events#Publish-Subscribe#Beginner
Back to all Node JS Questions→

More Node JS Interview Questions

Beginner LevelNode JS

How does the Node.js Event Loop work? Explain the 6 execution phases (Timers, Pending, Poll, Check, Close).

Beginner LevelNode JS

What does 'Single-Threaded, Event-Driven, Non-Blocking I/O' mean in Node.js?

Beginner LevelNode JS

What is the difference between process.nextTick() and setImmediate()?