Implement a minimal event emitter
The pub/sub pattern underlies Node's own EventEmitter, DOM events, and most state-management libraries, this is the mechanism behind all of them, in about 15 lines.
Write createEventEmitter() that returns an object with three methods:
on(event, handler), registershandlerto be called whenevereventis emitted.off(event, handler), removes that specific handler.emit(event, ...args), calls every handler registered forevent, passing along any extra arguments.
const emitter = createEventEmitter();
emitter.on("greet", (name) => console.log("hello", name));
emitter.emit("greet", "Amit"); // logs "hello Amit"Multiple handlers can be registered for the same event, and each should fire independently.