Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

event-emitter-grouped

bevry1.4kArtistic-2.06.7.0

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

async, browser, callback, completion, emitter, es5, esnext, event, eventemitter, events, flow, node, parallel, serial, sync, typed, types

readme

Event Emitter Grouped

Status of the GitHub Workflow: bevry NPM version NPM downloads
GitHub Sponsors donate button ThanksDev donate button Patreon donate button Liberapay donate button Buy Me A Coffee donate button Open Collective donate button crypto donate button PayPal donate button
Discord server badge Twitch community badge

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

Usage

Complete API Documentation.

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

Install

npm

  • Install: npm install --save event-emitter-grouped
  • Import: import * as pkg from ('event-emitter-grouped')
  • Require: const pkg = require('event-emitter-grouped')

jspm

<script type="module">
    import * as pkg from '//dev.jspm.io/event-emitter-grouped@6.7.0'
</script>

Editions

This package is published with the following editions:

  • event-emitter-grouped aliases event-emitter-grouped/index.cjs which uses the Editions Autoloader to automatically select the correct edition for the consumer's environment
  • event-emitter-grouped/source/index.js is ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules
  • event-emitter-grouped/edition-browsers/index.js is ESNext compiled for web browsers with Require for modules
  • event-emitter-grouped/edition-node-4/index.js is ESNext compiled for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 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 accomplish this via your tsconfig.json file like so:

{
  "compilerOptions": {
    "maxNodeModuleJsDepth": 5
  }
}

History

Discover the release history by heading on over to the HISTORY.md file.

Backers

Code

Discover how to contribute via the CONTRIBUTING.md file.

Authors

Maintainers

Contributors

Finances

GitHub Sponsors donate button ThanksDev donate button Patreon donate button Liberapay donate button Buy Me A Coffee donate button Open Collective donate button crypto donate button PayPal donate button

Sponsors

  • Andrew Nesbitt — Software engineer and researcher
  • Balsa — We're Balsa, and we're building tools for builders.
  • Codecov — Empower developers with tools to improve code quality and testing.
  • Poonacha Medappa
  • Rob Morris
  • Sentry — Real-time crash reporting for your web apps, mobile apps, and games.
  • Syntax — Syntax Podcast

Donors

License

Unless stated otherwise all works are:

and licensed under:

changelog

History

v6.7.0 2024 January 2

v6.6.0 2023 December 29

v6.5.0 2023 December 29

v6.4.0 2023 November 24

v6.3.0 2023 November 21

v6.2.0 2023 November 15

v6.1.0 2023 November 13

v6.0.0 2023 November 13

  • Updated dependencies, base files, and editions using boundation
  • Minimum required Node.js version changed from node: >=8 to node: >=4 adapting to ecosystem changes

v5.0.0 2023 November 13

  • Updated dependencies, base files, and editions using boundation
  • Minimum required Node.js version changed from node: >=10 to node: >=8 adapting to ecosystem changes

v4.20.0 2023 November 1

v4.19.0 2021 July 30

v4.18.0 2021 July 29

v4.17.0 2021 July 28

v4.16.0 2020 October 29

v4.15.0 2020 September 4

v4.14.0 2020 August 18

v4.13.0 2020 August 4

v4.12.0 2020 July 22

v4.11.0 2020 July 22

v4.10.0 2020 June 25

v4.9.0 2020 June 21

v4.8.0 2020 June 21

v4.7.0 2020 June 20

v4.6.0 2020 June 10

v4.5.0 2020 June 10

v4.4.0 2020 May 22

v4.3.0 2020 May 21

v4.2.0 2020 May 13

v4.1.0 2020 May 4

v4.0.0 2020 March 26

  • Updated dependencies, base files, and editions using boundation
  • Minimum required node version changed from node: >=8 to node: >=10 to keep up with mandatory ecosystem changes

v3.4.0 2019 December 9

v3.3.0 2019 December 1

v3.2.0 2019 December 1

v3.1.0 2019 December 1

v3.0.0 2019 November 18

  • Updated dependencies, base files, and editions using boundation
  • Minimum required node version changed from node: >=0.8 to node: >=8 to keep up with mandatory ecosystem changes

v2.8.0 2019 November 13

v2.7.1 2018 September 3

v2.7.0 2018 August 19

v2.6.1 2018 July 13

  • Delegated ambi invocation to taskgroup, where it rightfully belongs
  • Updated dependencies

v2.6.0 2018 July 13

  • More detailed and accurate task names for listeners
  • Better listener argument length detection thanks to unbounded
  • Better listener argument length detection on once events on Node v10 and Node v8
  • Updated base files using boundation
  • Updated dependencies

v2.5.0 2016 June 4

  • Converted from CoffeeScript to ESNext
  • Removed attach and inheritInto, they were not used by anybody
  • Export EventEmitterGrouped directly, alias as static property for backwards compatibility
  • Updated dependencies

v2.4.3 2014 June 24

  • Fixed publish

v2.4.2 2014 June 24

  • Fixed publish

v2.4.1 2014 June 16

  • Removed events-browser implied dependency, as browserify shim now works

v2.4.0 2014 June 16

  • Updated dependencies

v2.3.3 2014 January 30

  • Possible fix for priorities on events bound by once
  • TaskGroup and Tasks are now named by default

v2.3.2 2013 November 6

  • Dropped component.io and bower support, just use ender or browserify
  • Updated dependencies

v2.3.1 2013 October 27

  • Re-packaged

v2.3.0 2013 July 12

  • Split out from bal-util
  • Added support for splat arguments