SOURCE

class Pubsub {
    constructor() {
        this.subscribers = [];
    }
    subscribe(event, callback) {
        if(!this.subscribers[event]) {
            this.subscribers[event] = [];
        }
        this.subscribers[event].push(callback);
    }
    publishSync(event, data) {
        if(!this.subscribers[event]) return;
        this.subscribers[event].forEach(cb => cb(data));
    }
}

const sub = new Pubsub()

sub.subscribe('getList', (msg) => {
    console.log('getListEvent', msg)
})

sub.subscribe('getList', (msg) => {
    console.log('getListEvent1', msg)
})

setTimeout(() => {
    sub.publishSync('getList', 'wcl')
}, 2000)
console 命令行工具 X clear

                    
>
console