@cameronwp/pubsub
v0.0.1
Published
Pubbing and subbing.
Downloads
2
Readme
@cameronwp/pubsub
Shamelessly based on https://davidwalsh.name/pubsub-javascript. Adds the concept of history so new subscriptions can optionally receive a topic published before the subscription was created.
Note: Node only.
npm i -S @cameronwp/pubsub
Sample Usage
Subscribe to topic
s and receive message
s when a topic
is published.
Base usage
// script.js
const Pubsub = require('@cameronwp/pubsub');
const ps = new Pubsub();
const topic = 'action';
ps.subscribe(topic, info => {
console.log(`message published: ${info}`);
});
ps.publish(topic, 'new message!'); // will result in: "message published: new message!"
Removing a subscription
// script.js
const Pubsub = require('@cameronwp/pubsub');
const ps = new Pubsub();
const topic = 'action';
const subscription = ps.subscribe(topic, info => {
console.log(`message published: ${info}`);
});
subscription.remove();
ps.publish(topic, 'new message!'); // nothing happens
Subscribing after a topic has been published
// script.js
const Pubsub = require('@cameronwp/pubsub');
const ps = new Pubsub();
const topic = 'action';
ps.publish(topic, 'new message!');
const subscription = ps.subscribe(topic, info => {
console.log(`message published: ${info}`);
}, true); // note the 'true' here indicating that the listener should be called against the last publication
// immediately logs "message published: new message!"
API
Classes
Functions
Typedefs
Pubsub
Kind: global class
new Pubsub()
Creates a means for publishing and subscribing to events with callbacks.
subscribe(topic, callback, [historical]) ⇒ subscription
Subscribe a callback to be called when a topic is published.
Kind: global function
| Param | Type | Default | Description | | --- | --- | --- | --- | | topic | string | | | | callback | listener | | | | [historical] | boolean | false | Whether or not to immediately call the listener on the last published value for this topic (if it exists). |
publish(topic, info)
Publish a topic.
Kind: global function
| Param | Type | | --- | --- | | topic | string | | info | any |
clear()
Remove all listeners and clear the history.
Kind: global function
listener : function
Callback that gets called when a topic is published.
Kind: global typedef
| Param | Type | | --- | --- | | info. | any |
subscription : function
The resulting subscription.
Kind: global typedef Properties
| Name | Type | Description | | --- | --- | --- | | remove | function | Removes the listener from the topic. |