event-emitter-grouped v4.15.0-next.1602406516.65613d6712689cd569df20f5ccf539d4b7956908
Emit events in serial or parallel with support for synchronous and asynchronous listeners
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
*/npm
jspm
<script type="module">
import * as pkg from '//dev.jspm.io/event-emitter-grouped@4.15.0'
</script>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
}
}Discover the release history by heading on over to the HISTORY.md file.
Discover how you can contribute by heading on over to the CONTRIBUTING.md file.
These amazing people are maintaining this project:
No sponsors yet! Will you be the first?
These amazing people have contributed code to this project:
Discover how you can contribute by heading on over to the CONTRIBUTING.md file.
Unless stated otherwise all works are:
and licensed under:
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
10 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago