event-bus.js 546 B

12345678910111213141516171819202122
  1. // 创建时间总线
  2. const eventBus = {
  3. events: {},
  4. on(event, callback) {
  5. if (!this.events[event]) {
  6. this.events[event] = [];
  7. }
  8. this.events[event].push(callback);
  9. },
  10. emit(event, data) {
  11. if (this.events[event]) {
  12. this.events[event].forEach(callback => callback(data));
  13. }
  14. },
  15. off(event, callback) {
  16. if (this.events[event]) {
  17. this.events[event] = this.events[event].filter(cb => cb !== callback);
  18. }
  19. }
  20. };
  21. export default eventBus;