沙盘演示系统应用的微信小程序
zuoxiao
2024-08-28 eb3dbfdcb126beeb1d08f3306ac8f5bbc466e133
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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);
    }
}