EventEmitter Pattern
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 = pub-sub architecture, Node.js, mein
- once() = ek, baar, trigger, hone, ke, baad, AUTO-REMOVE
- removeListener() = memory leaks, AVOID, karne, ke, liye, ZAROORI
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.