Event Bus
We can listen and emit some events with _spy.eventBus.
js
function someEventHandler(data) {
console.log("some-event", data);
}
function someEventHandlerOnce(data) {
console.log("some-event once", data);
}
const SOME_EVENT = "some-event";
const OTHER_EVENT = "other-event";
_spy.eventBus.on(
SOME_EVENT,
someEventHandler,
);
_spy.eventBus.once(
SOME_EVENT,
someEventHandlerOnce,
);
_spy.eventBus.on(
OTHER_EVENT,
(data) => {
console.log(OTHER_EVENT, data);
},
);
_spy.stroke.register("some", () => {
_spy.eventBus.emit(SOME_EVENT, {
message: "hello",
});
});
_spy.stroke.register("other", () => {
_spy.eventBus.emit(OTHER_EVENT, {
message: "other",
});
});
_spy.stroke.register("remove", () => {
_spy.eventBus.off(
SOME_EVENT,
someEventHandler,
);
console.log("removed a handler");
});
_spy.stroke.register("clear", () => {
_spy.eventBus.clear(SOME_EVENT);
console.log(`cleared ${SOME_EVENT}`);
});
_spy.stroke.register("clearall", () => {
_spy.eventBus.clear();
console.log("cleared all events");
});ts
eventBus: {
on: (eventName: string | Symbol, (data: unknown) => void) => void;
off: (eventName: string | Symbol, (data: unknown) => void) => void;
once: (eventName: string | Symbol, (data: unknown) => void) => void;
emit: (eventName: string | Symbol, data: unknown) => void;
clear: (eventName?: string | Symbol) => void;
}