JSFiddle - React, Tailwind, and code Playground
by dima_k
JavaScript
var mediator = (function () {
var channels = {},
subscribe = function (channel, callback) {
if (!channels[channel]) {
channels[channel] = [];
}
channels[channel].push({ callback: callback })
},
publish = function (channel, data) {
if (!channels[channel])
return false;
for (var i = 0; i < channels[channel].length; i++) {
channels[channel][i].callback(data)
}
};
return {
subscribe: subscribe,
publish: publish
}
})();
var person = {name: 'Dima'};
mediator.subscribe('changeName', function(newName){
person.name = newName;
});
console.log('Name before changing : ' + person.name);
setTimeout(function(){
mediator.publish('changeName', 'Eyal');
console.log('Name after changing : ' + person.name);
}, 2000);