| | |
| | | export default class Bus { |
| | | constructor() { |
| | | this.listeners = new Map(); |
| | | this.emitted = new Set(); |
| | | } |
| | | on(evtName, listener) { |
| | | if (this.emitted.has(evtName)) { |
| | | listener(); |
| | | return; |
| | | } |
| | | const target = this.listeners.get(evtName) || []; |
| | | target.push(listener); |
| | | this.listeners.set(evtName, target); |
| | | } |
| | | emit(evtName) { |
| | | const listeners = this.listeners.get(evtName); |
| | | if (listeners) { |
| | | listeners.forEach((func) => func()); |
| | | } |
| | | this.emitted.add(evtName); |
| | | } |
| | | } |
| | | export default class Bus{constructor(){this.listeners=new Map,this.emitted=new Set}on(t,e){if(this.emitted.has(t))return void e();const s=this.listeners.get(t)||[];s.push(e),this.listeners.set(t,s)}emit(t){const e=this.listeners.get(t);e&&e.forEach(t=>t()),this.emitted.add(t)}} |