nanopubsub
v1.0.0
Published
Tiny message bus
Downloads
5
Readme
nanopubsub
Tiny message bus.
Usage
var nanopubsub = require('nanopubsub')
var bus = nanopubsub()
bus.on('flush', function () {
console.log('all events done!')
})
bus.sub('beep:boop', function (data, done) {
console.log('boop was called')
done()
})
bus.pub('beep:boop', function () {
console.log('calling beep:boop done!')
})
FAQ
How do I handle errors?
Emit an event like you'd do with everything else. There is no need for global error handling because it can be implemented by consumers.
How do I publish from a subscriber?
You can call bus.pub
from inside bus.sub
- wait with calling done()
until
the bus.pub
call has resolved to guarantee the right ordering of events.
How do I namespace events?
This is done through convention. We recommend namespacing events using the :
separator (e.g. bus.sub('foo:bar')
).
API
bus = nanopubsub()
Create a new message bus.
bus.sub(eventName, callback(data, done))
Create a new subscriber for an event. done()
should be called when the
subscriber is done.
bus.pub(eventName, [data], callback)
Emit a new event with optional data attacked. The callback is called once all handlers are done.
bus.on(eventName, callback)
Listen to global events on the message bus. There are a few events available:
bus.on('flush')
: called when allbus.pub
calls have resolved.bus.on('pub')
: called every time abus.pub
call is fired.eventName
anddata
are passed to the callback.