JSFiddle - React, Tailwind, and code Playground
by PratapDessai
JavaScript
// {
// "eventName1": [func1, func2],
// "eventName2": [func3]
//}
let events = {
events: {},
subscribe: function (eventName, func) {
this.events[eventName] = this.events[eventName] || [];
this.events[eventName].push(func);
},
unsubscribe: function (eventName, func) {
if (this.events[eventName]) {
this.events = this.events.filter((name) => name !== func)
}
},
publish:function (eventName, data) {
if (this.events[eventName]) {
console.log(this.events)
this.events[eventName].forEach((fn) => {
fn(data);
})
}
}
}
events.events = [1,2,3];
console.log(events.events)
function n1(){
console.log('inside n1');
}
events.subscribe('name1', n1);
function n2(){
console.log('inside n2');
}
events.subscribe('name1', n2);
function n2(){
console.log('inside n2');
}
events.subscribe('name2', n2);
events.publish('name2', 'abcde');