Allows several event emitters to be listened and emitted through a single one.
Allows several event emitters to be handled and emitting to a single one.
var EventEmtter = require'events'EventEmitterEventYoshi = require'eventyoshi'var ee1 = ;var ee2 = ;var yoshi =addee1addee2yoshion'foo'console.log'foo!';;ee1emit'foo'; // foo!ee2emit'foo'; // foo!
Why would you use this instead of doing something like
ee1on'foo' listener;ee2on'foo' listener;
Well, you could do that, or you could let EventYoshi handle all the logic for you flawlessly and without modifying the underlying child event emitters. EventYoshi can be treated as another EventEmitter. You can pass it around without having to tell whoever you passed it to what emitters you're listening to and which you aren't listening to anymore.
Same goes for events you might listen to or remove later. As you add more event emitters to event yoshi, it will add listeners that you were already listening for to the emitter you added.
var yoshi = ;yoshion'a'console.log'a emitted';;var ee = ;yoshiaddee;eeemit'a'; // a emitted
And as you remove emitters, all listeners that were added through event yoshi are removed too.
yoshiremoveee;eeemit'a'; // nothing emitted on yoshi
EventYoshi also supports the
once method. It supports listening to
newListener such that it is emitted only when listeners are added to your EventYoshi instance and not when they are added to child emitters.
Adds an event emitter to an event yoshi.
Remove an event emitter from an event yoshi.
Proxies all calls from to
yoshi[fn] to its children.
yoshiaddwriteStream;yoshiproxy'write' 'end';yoshiwritedata; // this will call writeStream.write() with datayoshiend; // will call writeStream.end()
When the proxy'd functions are called, they return the values returned from called functions in an array. If the array's length is only 1, returns only the first value.
When events are emitted,
this.child will contain the child emitter the event came from. Or in case of
newListener event, will contain the event yoshi itself.
yoshion'event'console.log'Event came from: ' thischild;;
Emitted when a listener is added to an event yoshi.
Emitted when a listener is added to an event emitter that has been added to, and not removed from, an event yoshi. Does not emit listeners added by EventYoshi.
npm install eventyoshi
Tests are written with mocha