Skip to content

Extend event emitters to allow registering listeners only once.

License

Notifications You must be signed in to change notification settings

doowb/emitter-only

Repository files navigation

emitter-only NPM version Build Status

Extend event emitters to allow registering listeners only once.

Install with npm

$ npm i emitter-only --save

Usage

var only = require('emitter-only');
Emitter.prototype.only = function () {
  return only.apply(this, arguments);
};

var emitter = new Emitter();

emitter.on('foo', function (msg) {
  console.log('foo', msg);
});

emitter.only('one-time', 'foo', function (msg) {
  console.log('foo 1', msg);
});

emitter.only('one-time', 'foo', function (msg) {
  console.log('foo 2', msg);
});

emitter.emit('foo', 'bar');
//=> 'foo bar'
//=> 'foo 1 bar'

API

Only register an event listener one time for the given name/event combo.

Params

  • name {String}: Name to specify this is a unique listener.
  • event {String}: Event name to pass to the emitter on method.
  • fn {Function}: Event listener function to pass to the emitter on method.
  • returns {Object}: Return this for chaining.

Related projects

component-emitter: Event emitter | homepage

Running tests

Install dev dependencies:

$ npm i -d && npm test

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Author

Brian Woodward

License

Copyright © 2015 Brian Woodward Released under the MIT license.


This file was generated by verb-cli on September 23, 2015.

About

Extend event emitters to allow registering listeners only once.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  
  •  

Packages

No packages published