UNPKG

kontrol

Version:

Make easier the use of events

44 lines (33 loc) 991 B
var EventEmitter = require('events').EventEmitter; var emisor; var Distribuidor = function(emisorGlobal){ emisor = emisorGlobal; var eventos = {}; var clase = this; emisor.on('repiteEvento',function(evento,escucha){ clase.set(evento,escucha); }); this.set = function(evento,escucha){ if(!eventos[evento]){ eventos[evento] = []; emisor.addListener( evento , function(args){ args = args || {}; if ( args == 'Evento repetido' ) args = {}; if( typeof( args ) !='object') args = {cadena:args} args['nombreEvento'] = args['nombreEvento'] || evento; for(var emisor in eventos[evento]){ eventos[evento][emisor].emit( args.nombreEvento, args ); } }); } eventos[evento].push(escucha); }; this.eliminarEmisor = function(evento,emisor){ eventos[evento].splice(emisor,1); } this.eliminarEmisores = function(evento){ delete eventos[evento]; } } exports.Distribuidor = Distribuidor;