← Back to Node.js Course | Chapter 4: Async Programming | Lesson 5 of 7

EventEmitter क्या है

EventEmitter Node की event-driven style power करता है: चीज़ें named events emit करती हैं और दूसरी सुनती हैं।

In this page:

  1. EventEmitter
Syntax
javascript
const EventEmitter = require('events');

class ClassName extends EventEmitter {
  method() {
    this.emit('eventName', value);
  }
}

const obj = new ClassName();
obj.on('eventName', (value) => {
  // handle event
});

EventEmitter

अपनी खुद की event-producing classes बनाने के लिए EventEmitter extend करें। Listeners जिस order में add हुए उसी order में synchronously चलते हैं। One-time events के लिए once इस्तेमाल करें और leaks से बचने के लिए listeners remove करें। events.once helper अगले event के लिए एक promise return करता है।

Note: EventEmitter extend करना आपकी class को data या done जैसे events expose करने देता है।

उदाहरण: EventEmitter

javascript
const EventEmitter = require("events");
class Downloader extends EventEmitter {
  start() {
    this.emit("start");
    setTimeout(() => this.emit("done", { bytes: 1024 }), 5);
  }
}
const d = new Downloader();
d.on("start", () => console.log("started"));
d.on("done", (info) => console.log("done, bytes:", info.bytes));
d.start();

// Output:
// started
// done, bytes: 1024

⚠️ Run this in your own terminal or Node.js environment.

Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. constructor में super() call करना भूल जाना
  2. हर request पर एक listener add करना
  3. listeners attach होने से पहले emit करना
चैप्टर सारांश
  • Custom events के लिए EventEmitter extend करें
  • Listeners synchronously चलते हैं
  • once और off listeners manage करते हैं
  • events.once एक promise return करता है
🔒

Chapter Quiz — Complete all 7 topics to unlock

0/7 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.