@cameronwp/pubsub v0.0.1
@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. |
7 years ago