kontrol
Version:
Make easier the use of events
53 lines (39 loc) • 1.3 kB
JavaScript
var EventEmitter = require('events').EventEmitter,
Log = require('./util/util.js').LogEventos;
var EmisorGlobal = function(){
var emisorGlobal = new Emisor('emisorGlobal');
delete emisorGlobal.set;
return emisorGlobal;
}
var Emisor = function(nombre){
this.nombre = nombre;
var escucha = new EventEmitter();
escucha.logs = {};
escucha.on('error',function(data){
console.log('Error en emisor',nombre,':',data);
});
escucha.on('exito',function(data){
console.log('Éxito en emisor',nombre,':',data);
});
escucha.crearLog = function(nombre,ruta,eventos){
if( !nombre ) return 'Error: no hay nombre'
if( !ruta ) return 'Error: no hay ruta';
escucha.logs[nombre] = new Log({ruta:ruta,emisor:escucha});
escucha.logs[nombre].guardarEvento(eventos);
return escucha.logs[nombre];
}
escucha.set = function(event,funcion){
escucha.removeAllListeners();
escucha.on(event,funcion);
}
return escucha;
}
var numEscucha = 0;
var nuevoEmisor = function(emisorGlobal){
var emisor = new Emisor( ++numEscucha );
emisorGlobal.emit( 'repiteEvento' , 'error' , emisor );
emisorGlobal.emit( 'repiteEvento' , 'exito' , emisor );
return emisor;
}
exports.EmisorGlobal = EmisorGlobal;
exports.nuevoEmisor = nuevoEmisor;