signalfn
Simple signalling.
Basically an event emitter which only fires a single event. Use multiple emitters for different concerns. This makes events discoverable as part of the object's signature, rather than just random strings you need to find in the documentation.
Usage
Create new signals
var Signal = require('signalfn')
var API = {}
API.onsave = new Signal()
API.onload = new Signal()
Fire signals
API.save = function save() {
this.onsave.fire()
}
API.load = function(data) {
this.onload.fire(data)
}
Add handers to signals
API.onsave(function() {
console.log('triggered save 1')
})
API.onsave.add(function() {
console.log('triggered save 2')
})
API.save()
Fire signals with data
API.onload(function(data) {
console.log('triggered load', data)
})
API.load('some data')
Remove handlers
function toRemove() {
console.log('to remove')
}
API.onsave.add(toRemove)
API.save()
API.onsave.remove(toRemove)
API.save()
Remove all handlers
API.onsave.remove()
Trigger handler once
API.onsave.once(function() {
console.log('trigger me once')
})
API.save()
API.save()
License
MIT