JSFiddle - React, Tailwind, and code Playground
HTML
<dif id='result'></dif>
JavaScript
function PubSub() {
this.subs = {};
this.subscribe = function(channel, sub) {
this.subs[channel] = this.subs[channel] || [];
this.subs[channel].push(sub);
};
this.publish = function(channel) {
var args = [].slice.call(arguments, 1);
this.subs[channel].forEach(function(sub) {
sub.apply(void 0, args);
});
};
}
var ps = new PubSub();
ps.subscribe("en", function (message) {
document.getElementById("result").innerHTML += "<p>1:" + message + "</p>";
console.log("1:", message);
});
ps.subscribe("en", function (message) {
document.getElementById("result").innerHTML += "<p>2:" + message + "</p>";
console.log("2:", message);
});
ps.subscribe("es", function (message) {
document.getElementById("result").innerHTML += "<p>3:" + message + "</p>";
console.log("3:", message);
});
ps.publish("en", "hello");
ps.publish("es", "hola");