Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. var MessageBus = function() {
  2. this.subscribers = [];
  3. };
  4.  
  5. MessageBus.prototype.subscribe = function (topic, myCallback) {
  6. this.subscribers[topic] = this.subscribers[topic] || []
  7. this.subscribers[topic].push(myCallback);
  8. };
  9.  
  10. MessageBus.prototype.publish = function (topic, payload) {
  11. this.subscribers[topic].forEach((cb) => {
  12. cb(payload);
  13. })
  14. };
  15.  
  16. var messageBus = new MessageBus('new_signup');
  17.  
  18. messageBus.subscribe('new_signup', function(payload) {
  19. console.log(payload);
  20. });
  21.  
  22. messageBus.subscribe('another_topic', function(payload) {
  23. console.log('new payload', payload);
  24. });
  25.  
  26. messageBus.publish('new_signup', {'foo': 'bar', 'goo': 'gar'} );
  27. messageBus.publish('new_signup', {'asd': 'asd', 'vb': 'xcv'} );
  28.  
  29. messageBus.publish('another_topic', {'asd': 'asd', 'vb': 'xcv'} );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement