node package manager

event-emitter-grouped

Emit events in serial or parallel with support for synchronous and asynchronous listeners

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
  • Module: require('event-emitter-grouped')
  • Browserify

    • Install: npm install --save event-emitter-grouped
    • Module: require('event-emitter-grouped')
    • CDN URL: //wzrd.in/bundle/event-emitter-grouped@2.5.0
    • Ender

      • Install: ender add event-emitter-grouped
      • Module: require('event-emitter-grouped')
      • Editions

        This package is published with the following editions:

        • event-emitter-grouped aliases event-emitter-grouped/index.js which uses Editions to automatically select the correct edition for the consumers environment
        • event-emitter-grouped/source/index.js is Source + ESNext + Require
        • event-emitter-grouped/es2015/index.js is Babel Compiled + ES2015 + Require

        Older environments may need Babel's Polyfill or something similar.

        // 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
        */

        Documentation.

        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:

        Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

        License

        Unless stated otherwise all works are:

        and licensed under: