Lightweight signal libs used as dependancies for my projects.
Following behaviors may not be properly implemented yet:
- .trigger() should be protected against re-entry.
- removing source/listener should prevent listeners calls even if during trigger.
- adding listener should trigger in the NEXT event (as it will be called once due to initial).
- adding source should not cause issue as previous trigger should have been canceled.
import Event from "./?"
const ev = new Event("name"); // name is used for debug.
ev.listen( () => {...} ); // unlisten to stop listening
ev.trigger();- TODO...
Recommanded to listen events :
import Event from "./?"
import EventListener from "./?"
const ev = new Event("name");
const l = new EventListener(ev, () => {});
// called twice.
ev.trigger();
ev.trigger();import Event from "./?"
import EventListener from "./?"
const ev = new Event("name");
const l = new EventListener(ev, () => {}, {once: true});
// called once.
ev.trigger();
ev.trigger();import Event from "./?"
import EventListener from "./?"
const ev = new Event("name");
const l = new EventListener(ev, () => {}, {ack: true});
// called twice.
ev.trigger();
ev.trigger(); // not called.
l.ack();
ev.trigger();
ev.trigger(); // not called.