JSFiddle - React, Tailwind, and code Playground
by Chase Wilson
JavaScript
function channel(fns) {
var chan = {fns: fns || []};
chan.give = channel.give.bind(chan);
chan.take = channel.take.bind(chan);
return chan;
}
channel.give = function() {
var self = this
self.fns.forEach(function(fn) {
fn.apply(val, arguments);
})
}
channel.take = function(fn) {
var args = arguments, i = 0;
for(i = 0; i < args.length; i ++) this.fns.push(args[i]);
}