📢
Asynchronous Programming

EventEmitter Pattern

Pub-Sub in Node.js
💡 EventEmitter, PATTERN, EK, "NEWSPAPER, SUBSCRIPTION" jaisa, hai — PUBLISHER, (EMITTER), NEWS, (EVENTS) PUBLISH, karta hai, aur, SUBSCRIBERS, (LISTENERS), NEW, ISSUE, AANE, PAR, AUTOMATICALLY, NOTIFY, ho, jaate, hain — PUBLISHER, ko, PATA, NAHI, hota, KAUN-KAUN, SUBSCRIBED, hai.

EventEmitter, PATTERN, DECOUPLED, ARCHITECTURE, ke, liye, USEFUL, hai — EMITTER, aur, LISTENERS, EK, DUSRE, KE, baare, mein, DIRECTLY, NAHI, JAANTE, SIRF, EVENT, NAME, KE, THROUGH, COMMUNICATE, karte, hain.

once(), EK, LISTENER, ADD, karta hai, JO, SIRF, EK, BAAR, TRIGGER, hota hai, PHIR, AUTOMATICALLY, REMOVE, ho, jaata hai. removeListener()/off(), MANUALLY, LISTENER, REMOVE, karta hai — MEMORY, LEAKS, AVOID, karne, ke, liye, ZAROORI hai.

const EventEmitter = require("events");
class NotificationService extends EventEmitter {}
const notifier = new NotificationService();

notifier.once("first-login", (user) => {
  console.log("Welcome bonus for:", user.name);
});

notifier.on("login", (user) => {
  console.log(`${user.name} logged in`);
});

notifier.emit("first-login", { name: "Aarav" });
notifier.emit("login", { name: "Aarav" });
📢
EventEmitter, PATTERN, EK, "NEWSPAPER, SUBSCRIPTION" jaisa, hai — PUBLISHER, (EMITTER), NEWS, (EVENTS) PUBLISH, karta hai, aur, SUBSCRIBERS, (LISTENERS), NEW, ISSUE, AANE, PAR, AUTOMATICALLY, NOTIFY, ho, jaate, hain — PUBLISHER, ko, PATA, NAHI, hota, KAUN-KAUN, SUBSCRIBED, hai.
1 / 2
⚡ झट से Recap
  • EventEmitter pattern = pub-sub architecture, Node.js, mein
  • once() = ek, baar, trigger, hone, ke, baad, AUTO-REMOVE
  • removeListener() = memory leaks, AVOID, karne, ke, liye, ZAROORI
इस page में (2 subtopics)

Multiple, listeners, EK, HI, event, PAR, ATTACH, HONE, PAR, WOH, USI, ORDER, mein, CALL, HOTE, HAIN, JIS, ORDER, mein, .on() se, REGISTER, HUE, THE — prependListener(), EK, LISTENER, ko, LIST, ki, SHURUAT, mein, ADD, karta hai.

emitter.on("event", () => console.log("second"));
emitter.prependListener("event", () => console.log("first"));
emitter.emit("event");   // "first" then "second"

emit(), listeners, ko, SYNCHRONOUSLY, CALL, karta hai, LEKIN, listener, KHUD, async, ho, sakta hai — emit(), listener, ke, Promise, ka, WAIT, NAHI, karta, ISLIYE, ASYNC, listeners, ke, ERRORS, ko, UNHANDLED, PROMISE, REJECTION, se, BACHANE, ke, liye, INTERNALLY, try-catch, ZAROORI, hai.

⚠️Common Mistake: Async, listener, ke, ANDAR, error, throw, hone, PAR, emit() ISE, CATCH, NAHI, karta — listener, ke, ANDAR, hi, try-catch, USE, karo.