Dashboard sipadu mbip
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

Dispatcher.js 887B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. class Dispatcher {
  2. /**
  3. * Create a new Dispatcher instance.
  4. */
  5. constructor() {
  6. this.events = {};
  7. }
  8. /**
  9. * Listen for the given event.
  10. *
  11. * @param {string|Array} events
  12. * @param {Function} handler
  13. */
  14. listen(events, handler) {
  15. events = [].concat(events);
  16. events.forEach(event => {
  17. this.events[event] = (this.events[event] || []).concat(handler);
  18. });
  19. return this;
  20. }
  21. /**
  22. * Trigger all handlers for the given event.
  23. *
  24. * @param {string} event
  25. * @param {*} data
  26. */
  27. fire(event, data) {
  28. if (!this.events[event]) return false;
  29. this.events[event].forEach(handler => handler(data));
  30. }
  31. /**
  32. * Fetch all registered event listeners.
  33. */
  34. all() {
  35. return this.events;
  36. }
  37. }
  38. module.exports = Dispatcher;