📢
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
⚡ Quick 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
Is page mein (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.