JSFiddle - React, Tailwind, and code Playground

by Vitaliy

JavaScript

var Observer = (function(){
	var callbacks = [];
  var events = {};
  function createEvent(name, callback){
		if(!events[name]){
    	events[name] = {
      	callbacks: [callback]
      }
    } else {
    	events[name].callbacks.push(callback);
    }
	}
  
  function triggerEvent(name, args){
  	if(events[name]){
    	events[name].callbacks.forEach(function(callback){
      	callback(args);
      });
    }
  }
  
  return function(){
  	return {
    	listen: createEvent,
      trigger: triggerEvent
    }
  }
})();

var event = new Observer();

event.listen('abrakadabra', function(e){
	console.log('%cevent data: ', e);
});

event.trigger('abrakadabra', {a:123});