UNPKG

glot

Version:

EventEmitter with Promises and Generators

46 lines (35 loc) 1.21 kB
'use strict' const Glot = require('../lib/glot'); const co = require('co'); const wait = require('co-wait'); let events = new Glot(); //Once plain function listener events.once('foo', function (data){ console.log('once foo plain:', data) }); //Once promise listener events.once('foo', (data) => { return new Promise((resolve, reject) => { console.log('once foo promise:', data); setTimeout(()=> resolve(data), 2000); }).catch((err) => console.log(err)); }); //Once generator listener events.once('foo', function* (data){ console.log('once foo generator:', data) yield wait(2000); return data; }); events.pmit('foo', { promise: 'foo1' }).then((data) => console.log(data)).catch((err) => console.log(err.stack)); events.pmit('foo', { promise: 'foo2' }).then((data) => console.log(data)).catch((err) => console.log(err.stack)); events.emit('foo', { emit: 'foo1' }); events.emit('foo', { emit: 'foo2' }); co(function *() { try { let result = yield events.gmit('foo', { gmit: 'foo1' }); let result2 = yield events.gmit('foo', { gmit: 'foo2' }); console.log([...result, ...result2]); } catch(err) { console.log(err.stack); } });