event.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /**
  2. * 通用函数
  3. */
  4. //创建EventBus对象
  5. let EventBus = function () {
  6. console.log('eventbus init...');
  7. }; //准备数组容器
  8. var objBus = [],
  9. arrbus = []; //添加方法
  10. EventBus.prototype = {
  11. obj: {
  12. set: function (key, action) {
  13. if (key && action) {
  14. var map = {};
  15. map.k = key;
  16. map.v = action; //如果存在,则删除之前添加的事件
  17. for (var i = 0, busLength = objBus.length; i < busLength; i++) {
  18. var tempMap = objBus[i];
  19. if (tempMap.k == key) {
  20. objBus.splice(i, 1);
  21. }
  22. }
  23. objBus.push(map);
  24. }
  25. },
  26. get: function (key) {
  27. if (key) {
  28. for (var i = 0, busLength = objBus.length; i < busLength; i++) {
  29. var map = objBus[i];
  30. if (map.k == key) {
  31. return map.v();
  32. }
  33. }
  34. }
  35. }
  36. },
  37. emit: function (key, data) {
  38. if (key) {
  39. for (var i = 0, busLength = arrbus.length; i < busLength; i++) {
  40. var map = arrbus[i];
  41. if (map.k == key) {
  42. return map.v(data);
  43. }
  44. }
  45. }
  46. return new Promise((resolve, reject) => {
  47. resolve();
  48. });
  49. },
  50. on: function (key, action) {
  51. if (key && action) {
  52. var map = {};
  53. map.k = key;
  54. map.v = action;
  55. arrbus.push(map);
  56. }
  57. },
  58. arr: {
  59. push: function (key, action) {
  60. if (key && action) {
  61. var map = {};
  62. map.k = key;
  63. map.v = action;
  64. arrbus.push(map);
  65. }
  66. },
  67. pop: function (key) {
  68. if (key) {
  69. for (var i = 0, busLength = arrbus.length; i < busLength; i++) {
  70. var map = arrbus[i];
  71. if (map.k == key) {
  72. map.v();
  73. }
  74. }
  75. }
  76. }
  77. }
  78. };
  79. var eventBus = new EventBus();
  80. module.exports = {
  81. eventBus: eventBus
  82. };