Event Emitter Grouped
Emit events in serial or parallel with support for synchronous and asynchronous listeners
Install
npm
- Install:
npm install --save event-emitter-grouped
- Require:
require('event-emitter-grouped')
jspm
<script type="module">
import * as pkg from '//dev.jspm.io/event-emitter-grouped'
</script>
Editions
This package is published with the following editions:
-
event-emitter-grouped
aliasesevent-emitter-grouped/source/index.js
-
event-emitter-grouped/source/index.js
is esnext source code with require for modules -
event-emitter-grouped/edition-browsers/index.js
is esnext compiled for browsers with require for modules
TypeScript
This project provides its type information via inline JSDoc Comments. To make use of this in TypeScript, set your maxNodeModuleJsDepth
compiler option to 5
or thereabouts. You can accomlish this via your tsconfig.json
file like so:
{
"compilerOptions": {
"maxNodeModuleJsDepth": 5
}
}
Usage
// Importer
var EventEmitterGrouped = require('event-emitter-grouped')
// Instantiate a new instance
var emitter = new EventEmitterGrouped()
// Bind an asynchronous event
emitter.on('hello', function (next) {
console.log('\tasync started')
setTimeout(function () {
console.log('\tasync finished')
next()
}, 1000)
})
// Bind a synchronous event
emitter.on('hello', function () {
console.log('\tsync started and finished')
})
// Bind a prioritized event
function vipListener () {
console.log('\tvip started and finished')
}
vipListener.priority = 1
emitter.on('hello', vipListener)
// Emit the events in serial (one after the other in a waiting fashion)
console.log('hello in serial started')
emitter.emitSerial('hello', function (err) {
console.log('hello in serial finished')
// Emit the events in parallel (all at once)
console.log('hello in parallel started')
emitter.emitParallel('hello', function (err) {
console.log('hello in parallel finished')
})
})
/* Outputs:
hello in serial started
vip started and finished
async started
async finished
sync started and finished
hello in serial finished
hello in parallel started
vip started and finished
async started
sync started and finished
async finished
hello in parallel finished
*/
History
Discover the release history by heading on over to the HISTORY.md
file.
Contribute
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
Backers
Maintainers
These amazing people are maintaining this project:
Sponsors
No sponsors yet! Will you be the first?
Contributors
These amazing people have contributed code to this project:
- Benjamin Lupton — view contributions
- Sean Fridman — view contributions
- dependabot-preview[bot] — view contributions
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
License
Unless stated otherwise all works are:
- Copyright © 2013+ Bevry Pty Ltd
- Copyright © 2011-2012 Benjamin Lupton
and licensed under: