Skip to content

denis-migdal-WebLibs/Signals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Signals

Lightweight signal libs used as dependancies for my projects.

Signals

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.

Events

import Event from "./?"

const ev = new Event("name"); // name is used for debug.
ev.listen( () => {...} ); // unlisten to stop listening
ev.trigger();

(Un)subscribe(To|From)

  • TODO...

EventListener

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.

About

Lightweight signal libs used as dependancies for my projects.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors