rong_event

Event emitter & handling

Event

Web-standard event system with Node.js EventEmitter support.

EventTarget

const target = new EventTarget();

target.addEventListener("click", (event) => {
  console.log(event.type); // "click"
});

target.dispatchEvent(new Event("click"));

addEventListener Options

target.addEventListener("click", handler, { once: true });
target.removeEventListener("click", handler);

once is supported. The capture flag is currently accepted for compatibility but not implemented.

Event & CustomEvent

const event = new Event("load", {
  bubbles: false,
  cancelable: true,
  composed: false,
});

const custom = new CustomEvent("message", {
  detail: { userId: 42 },
});
custom.detail; // { userId: 42 }

EventEmitter (Node.js Style)

const emitter = new EventEmitter();

emitter.on("data", (msg) => console.log(msg));
emitter.once("close", () => console.log("closed"));
emitter.emit("data", "hello");

emitter.off("data", handler);
emitter.removeAllListeners("data");

Methods

MethodDescription
on(event, listener)Add listener
once(event, listener)Add one-time listener
off(event, listener)Remove listener
removeListener(event, listener)Same as off
removeAllListeners(event?)Remove all listeners
prependListener(event, listener)Add to front of queue
prependOnceListener(event, listener)Add one-time to front
emit(event, ...args)Emit event
eventNames()List registered event names
listenerCount(event)Number of listeners
setMaxListeners(n)Set max listener count
getMaxListeners()Get max listener count