项目作者: shystruk

项目描述 :
Publish/Subscribe UMD package
高级语言: JavaScript
项目地址: git://github.com/shystruk/publish-subscribe-js.git
创建时间: 2017-12-01T15:49:08Z
项目社区:https://github.com/shystruk/publish-subscribe-js

开源协议:MIT License

下载


Publish/Subscribe Twitter URL

MIT Licence Build Status npm version Known Vulnerabilities

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 publish-subscribe-js

yarn

yarn add publish-subscribe-js

Example

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

Add more subscribers to topic

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

Unsubscribe specific topic

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

Unsubscribe specific subscriber in topic

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

Unsubscribe all topics

  1. PublishSubscribe.unsubscribeAll()

Contributing

Any contributions you make are greatly appreciated.

Please read the Contributions Guidelines before submitting a PR.

License

MIT © Vasyl Stokolosa