not in npm.
var PurgeableListener = require('purgeable-listener');
var EventEmitter = require('events').EventEmitter;
var ee = new EventEmitter();
for(var i = 0; i < 100; ++i){
new Promise(function(resolve, reject){
var purger = new PurgeableListener({autoPurge: true});
function onData(data){resolve(data)}
function onError(err){reject(data)}
function onFoo(data){resolve(fooFn(data))}
ee.on('error', purger.enpurgeable(onError, ee.removeListener.bind(ee, 'error')));
ee.on('done', purger.enpurgeable(onData, ee.removeListener.bind(ee, 'done')));
ee.on('foo', purger.enpurgeable(onData, ee.removeListener.bind(ee, 'foo')));
});
ee.emit(i%2 ? 'error' : 'done');
// listeners are removed automatically!!
}
- autoPurge: boolean
- Optional.
- When one of purgeabled listeners called,
PurgeableListener#purge
is called automatically.
- defaultRemover: Function
- Optional.
- If
defaultRemover
is given, you can omitPurgeableListener#enpurgeable
's second argument.
listener
is a base listener.remover
is called whenPurgeableListener#purge
is called. 1st argument islistener
object.- Omittable when
defaultRemover
is given.
- Omittable when
Purge listeners manually.