Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. module.exports = {
  2. events2: {},
  3.  
  4. /**
  5. * @param {String} event
  6. * @param {Object} subscriber
  7. * @param {Function} handler
  8. */
  9. on: function (event, subscriber, handler) {
  10. function vip(){
  11. return handler.call(subscriber);
  12. }
  13. if (Object.keys(this.events2).indexOf(event) < 0) {
  14. this.events2[event] = [[], []];
  15. }
  16. this.events2[event][0].push(subscriber);
  17. this.events2[event][1].push(vip);
  18. return this;
  19.  
  20. },
  21.  
  22. /**
  23. * @param {String} event
  24. * @param {Object} subscriber
  25. */
  26. off: function (event, subscriber) {
  27. tt = this.events2[event][0].indexOf(subscriber);
  28. delete this.events2[event][0][tt];
  29. delete this.events2[event][1][tt];
  30.  
  31. tt = this.events2[event][0].indexOf(subscriber);
  32. if (tt>-1) {
  33. delete this.events2[event][0][tt];
  34. delete this.events2[event][1][tt];
  35. }
  36. return this;
  37. },
  38.  
  39. /**
  40. * @param {String} event
  41. */
  42. emit: function (event) {
  43. for (xx of this.events2[event][1]) {
  44. if (xx != undefined) {
  45. xx();
  46. }
  47. }
  48. return this;
  49. }
  50. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement