Negligible Psychological Misery

npm

Need private packages and team management tools?Check out npm Orgs. »

publish-subscribe-js

1.1.3 • Public • Published

Publish/Subscribe Twitter URL

MIT Licence Gemnasium Build Status npm version

Publish/Subscribe UMD package

The Publish/Subscribe pattern encourage us to think hard about the relationships between different parts of our application. They also help us identify what layers containing direct relationships which could instead be replaced with sets of subjects and observers. This effectively could be used to break down an application into smaller, more loosely coupled blocks to improve code management and potentials for re-use. ~ Addy Osmani

Getting Publish/Subscribe

npm

npm install --save publish-subscribe-js

yarn

yarn add publish-subscribe-js --save

Example

import PublishSubscribe from 'publish-subscribe-js'
 
// create a function callback to subscribe to topic
const callback = (data, ...args) => {
    // args will store ['TOPIC', data, data_1, data_2, ...]
    console.log(data, args)
}
 
PublishSubscribe.subscribe('TOPIC', callback)
PublishSubscribe.publish('TOPIC', data, data_1, data_2, ...)

Add more subscribers to topic

// There are no limits, one TOPIC may store subscribers how many you needed
PublishSubscribe.subscribe('TOPIC', callback)
PublishSubscribe.subscribe('TOPIC', callback_1)
PublishSubscribe.subscribe('TOPIC', callback_2)
 
// All subscribers will be called
PublishSubscribe.publish('TOPIC')

Unsubscribe specific topic

PublishSubscribe.subscribe('TOPIC', callback)
PublishSubscribe.unsubscribe('TOPIC')

Unsubscribe specific subscriber in topic

 
const callbackKey = PublishSubscribe.subscribe('TOPIC', callback)
const callback_1Key = PublishSubscribe.subscribe('TOPIC', callback_1)
 
// Unsubscribe only callback subscriber
PublishSubscribe.unsubscribe('TOPIC', callbackKey)

Unsubscribe all topics

PublishSubscribe.unsubscribeAll()

Contributing

Any contributions you make are greatly appreciated.

Please read the Contributions Guidelines before submitting a PR.

License

MIT © Vasyl Stokolosa

install

npm i publish-subscribe-js

Downloadsweekly downloads

118

version

1.1.3

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability