Guest User

Untitled

a guest
Jun 24th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. import Emitter from './Emitter';
  2.  
  3. const emitter = new Emitter();
  4.  
  5. emitter.on('connect', data => {
  6. console.log('We have been connected to', data);
  7. });
  8.  
  9. emitter.on('disconnect', data => {
  10. console.log('We disconnected from', data);
  11. });
  12.  
  13. emitter.emit('connect', 'http-server');
  14. // prints to console:
  15. // > We have been connected to http-server
  16. emitter.emit('connect', 'websocket');
  17. // prints to console:
  18. // > We have been connected to websocket
  19.  
  20. emitter.emit('disconnect', 'websocket');
  21. // prints to console:
  22. // > We disconnected from websocket
  23. emitter.emit('disconnect', 'http-server');
  24. // prints to console:
  25. // > We disconnected from http-server
  26.  
  27. class Emitter {
  28. constructor() {
  29. this.events = {};
  30. }
  31. on(eventName, fn) {
  32. if (!this.events[eventName]) {
  33. this.events[eventName] = [];
  34. }
  35.  
  36. this.events[eventName].push(fn);
  37. }
  38. emit(eventName, data) {
  39. const event = this.events[eventName];
  40. if (event) {
  41. event.forEach(fn => {
  42. fn.call(null, data);
  43. });
  44. }
  45. return () => {
  46. this.events[eventName] =
  47.  
  48. this.events[eventName].filter(eventFn => fn !== eventFn);
  49. }
  50. }
  51. }
  52. let emitter = new Emitter();
  53.  
  54. emitter.on('connect', data => {
  55. console.log('We have been connected to', data);
  56. });
  57.  
  58. emitter.on('disconnect', data => {
  59. console.log('We disconnected from', data);
  60. });
  61.  
  62. emitter.emit('connect', 'http-server');
  63. // prints to console:
  64. // > We have been connected to http-server
  65. emitter.emit('connect', 'websocket');
  66. // prints to console:
  67. // > We have been connected to websocket
  68.  
  69. emitter.emit('disconnect', 'websocket');
  70. // prints to console:
  71. // > We disconnected from websocket
  72. emitter.emit('disconnect', 'http-server');
  73. // prints to console:
  74. // > We disconnected from http-server
Add Comment
Please, Sign In to add comment