callback-registry
Version:
Registry for callbacks
59 lines (45 loc) • 1.59 kB
Markdown
A simple registry for callbacks that allows you to add one or more callbacks
under some key and then execute all callbacks under some key.
Example:
```javascript
const registryFactory = require('callback-registry');
const registry = registryFactory();
// add a new callback for that event key
registry.add('event-key', function(){
console.log('the event occurred')
});
// execute all callbacks that were registred for that key
registry.execute('event-key');
```
You can pass any arguments to the callbacks when you execute them
```javascript
// execute all callbacks that were registred for that key
registry.execute('event-key', arg1, arg2, arg3);
```
The _execute_ method returns an array with the results returned from the callbacks.
When you add a new callback a function is returned that can be used to unsubscribe
```javascript
// A callback that will be called just the first time
var unsubscribe = registry.add('event-key', function(){
console.log('the event occurred');
unsubscribe();
});
```
* 2.7.2
dependencies update
* 2.7.1
fixed potentional memory leak
* 2.6.0
added replayArgumentsArr that allows you to replay arguments to a new callback
* 2.5.0
added clearKey method that removes a key from the registry
* 2.3.2
* fix case where unsubscribe function removes all subscriptions with the same callback reference
* 2.1.1
* return empty array as result if no subscribers
* catch errors in user callbacks (returns undefined in the result if error)