Event Module
Node.js is event-driven. The EventEmitter class lets you create, emit, and listen for custom events. Many build-in modules (like HTTP) use it internally.
Key Concepts
- Emitter: Object that emits events.
- Listener: Function that runs when event is emitted.
- Events: Named signals (strings like “click” or “data”).
- Once vs.On:
onlistens everytime whereasoncelistens only once.
Common Commands
Import and create an instance as:
import { EventEmitter } from 'events'
const myEmitter = new EventEmitter()- Listen for an Event:
myEmitter.on('greet', (name) => {
console.log(`Hello, ${name}`)
})- Explanation: Sets up listener for “greet” event.
- Emit and Event:
myEmitter.emit('greet', 'John')- Explanation: Triggers the event, passing “John” to listener. Outputs: “Hello, John”
- Listen Once:
myEmitter.once('once-event', () => {
console.log('This runs only once')
})
myEmitter.emit('once-event') // Runs
myEmitter.emit('once-event') // Ignored- Explanation: Stops listening.
- Remove Listener:
function listener() {
console.log('Event')
}
myEmitter.on('event', listener)
myEmitter.removeListener('event', listener)- Explanation: Stops listening.
Events are async and non-blocking.
