Node's event emitter for all engines.
This implements the Node.js
events module for environments that do not have it, like browsers.
eventscurrently matches the Node.js 11.12.0 API.
Note that the
events module uses ES5 features. If you need to support very old browsers like IE8, use a shim like
es5-shim. You need both the shim and the sham versions of
This module is maintained, but only by very few people. If you'd like to help, let us know in the Maintainer Needed issue!
You usually do not have to install
events yourself! If your code runs in Node.js,
events is built in. If your code runs in the browser, bundlers like browserify or webpack also include the
But if none of those apply, with npm do:
npm install events
var EventEmitter =var ee =eeee
See the Node.js EventEmitter docs.
events currently matches the Node.js 11.12.0 API.
PRs are very welcome! The main way to contribute to
events is by porting features, bugfixes and tests from Node.js. Ideally, code contributions to this module are copy-pasted from Node.js and transpiled to ES5, rather than reimplemented from scratch. Matching the Node.js code as closely as possible makes maintenance simpler when new changes land in Node.js.
This module intends to provide exactly the same API as Node.js, so features that are not available in the core
events module will not be accepted. Feature requests should instead be directed at nodejs/node and will be added to this module once they are implemented in Node.js.
If there is a difference in behaviour between Node.js's
events module and this module, please open an issue!