Skip to content

Instantly share code, notes, and snippets.

@rpragana
Last active June 19, 2017 00:16
Show Gist options
  • Select an option

  • Save rpragana/a995424798f9271f238a766aae5a3ec6 to your computer and use it in GitHub Desktop.

Select an option

Save rpragana/a995424798f9271f238a766aae5a3ec6 to your computer and use it in GitHub Desktop.
eventemitter
#!/usr/bin/env nodemon
var events = require('events');
var eventEmitter = new events.EventEmitter();
var listener1 = function (cor) {
console.log('listener1 executado, cor '+cor);
}
var listener2 = function (cor) {
console.log('listener2 executado, cor '+cor);
}
var listener3 = function (cor) {
console.log('listener3 executado, cor '+cor);
}
eventEmitter.addListener('conexao', listener1);
eventEmitter.on('conexao', listener2);
eventEmitter.once('conexao', listener3); /**** esse só executa uma vez ****/
var corAleatoria = function () {
const cores = ['azul', 'amarelo', 'verde', 'cinza',
'vermelho', 'laranja', 'marrom', 'branco']
return cores[Math.floor(Math.random() * cores.length)]
}
var eventListeners = require('events')
.EventEmitter.listenerCount(eventEmitter,'conexao');
console.log(eventListeners + " Listener(s) aguardando o evento conexao");
eventEmitter.emit('conexao',corAleatoria()); /* evento ‘conexao’ disparado */
eventEmitter.removeListener('conexao', listener1);
console.log("Listener1 não escutará mais o evento conexao.");
for (var i=0; i<10; i++) {
/**** emite mais algumas vezes o evento ****/
eventEmitter.emit('conexao',corAleatoria());
}
var eventListeners = require('events')
.EventEmitter.listenerCount(eventEmitter,'conexao');
console.log(eventListeners + " Listener(s) aguardando o evento conexao");
console.log("Fim do programa.");
var EventEmitter = require('events').EventEmitter;
function loopProc(loops) {
var e = new EventEmitter();
setTimeout(function () {
for (var i = 1; i <= loops; i++) {
e.emit('entrada', i);
console.log('Loop numero:' + i);
e.emit('saida', i);
}
}, 2000)
return e;
}
var lp = loopProc(3);
lp.on('entrada', function (data) {
console.log('Iniciando processamento ' + data);
});
lp.on('saida', function (data) {
console.log('Finalizando processamento ' + data);
});
var EventEmitter = require('events').EventEmitter;
function loopProc(loops) {
var e = new EventEmitter();
setTimeout(function () {
for (var i = 1; i <= loops; i++) {
e.emit('entrada', i);
console.log('Loop numero:' + i);
e.emit('saida', i);
}
}, 2000)
return e;
}
var lp = loopProc(3);
lp.on('entrada', function (data) {
console.log('Iniciando processamento ' + data);
});
lp.on('saida', function (data) {
console.log('Finalizando processamento ' + data);
});

Event Emitter

  • evemit.js
  • evemit2.js
  • evemit3.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment