emitter.ts 566 B

1234567891011121314151617181920212223242526272829303132
  1. import { EventEmitter } from 'eventemitter3';
  2. export class Emitter {
  3. emitter: any;
  4. constructor() {
  5. this.emitter = new EventEmitter();
  6. }
  7. emit(name, data?) {
  8. this.emitter.emit(name, data);
  9. }
  10. on(name, handler, scope?) {
  11. this.emitter.on(name, handler);
  12. if (scope) {
  13. var unbind = scope.$on('$destroy', () => {
  14. this.emitter.off(name, handler);
  15. unbind();
  16. });
  17. }
  18. }
  19. removeAllListeners(evt?) {
  20. this.emitter.removeAllListeners(evt);
  21. }
  22. off(name, handler) {
  23. this.emitter.off(name, handler);
  24. }
  25. }