Skip to content

Instantly share code, notes, and snippets.

@SethVandebrooke
Created November 27, 2017 16:08
Show Gist options
  • Save SethVandebrooke/f6aa09c0798b47c9322bc4f4d5f8b0f6 to your computer and use it in GitHub Desktop.
Save SethVandebrooke/f6aa09c0798b47c9322bc4f4d5f8b0f6 to your computer and use it in GitHub Desktop.
Tiny. Simple. Pubsub (No dependencies)

SUP

Subscribe. Unsubscribe. Publish.

Super simple event handling.

Basic use

var handle = SUP.sub("points", function(data){
  console.log("Oh sweet! I got "+data+" more points!");
});
SUP.pub("points",12);
SUP.unsub("points",handle);
SUP.pub("points",12);

Functions and parameters

sub(string : topic, function : reaction); pub(string : topic, any : data); unsub(string : topic, function : subscription);

const SUP=(function(){return {events:{},sub:function(a,b){if(!this.events.hasOwnProperty(a)){this.events[a]=[];}this.events[a].push(b);return b;},pub:function(a,b){this.events[a].forEach(function(a){a(b);});},unsub:function(a,b){for(var i in this.events[a]){if(b.toString()==this.events[a][i].toString()){this.events[a].splice(i,1);}}}};})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment