@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/pubsubSample Usage
Subscribe to topics and receive messages 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 happensSubscribing 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. |
8 years ago