INTEGRITY Dokumentace

EventEmitter

EventEmitter je objekt, který vyvolává pojmenované události způsobující volání posluchačů.

import { EventEmitter } from "node:events";

const emitter = new EventEmitter();
emitter.on("hello", (...args) => {
	console.log(...args); // 1 2 3
});

emitter.emit("hello", 1, 2, 3);

Implementace v runtime Workers podporuje celé Node.js EventEmitter API. To zahrnuje captureRejections možnost, která umožňuje lepší zpracování asynchronních funkcí jako obslužných rutin událostí:

const emitter = new EventEmitter({ captureRejections: true });
emitter.on("hello", async (...args) => {
	throw new Error("boom");
});
emitter.on("error", (err) => {
	// the async promise rejection is emitted here!
});

Stejně jako u Node.js, když 'error' událost se vyvolá na EventEmitter a pokud pro to neexistuje žádný posluchač, chyba se okamžitě vyhodí. V Node.js je ale možné přidat obslužnou rutinu na process objekt pro 'uncaughtException' událost pro zachytávání globálně nezachycených výjimek. 'uncaughtException' událost však v současnosti není v runtime Workers implementována. Důrazně se doporučuje vždy přidat 'error' listener k jakémukoli EventEmitter instance.

Viz Dokumentace Node.js pro EventEmitter s dalšími informacemi.