SOURCE

// 利用 js 实现一套发布订阅模式
class EventEmitter{
    /** 订阅事件
     * @params event: 事件类型
     * @params fn: 触发回调
     */ 
    on(event, fn){

    }

    // 取消订阅
    off(event, fn){


    }

    // 发布
    emit(event, ...args){
        
    }
}
const evt= new EventEmitter()

function cb1 (content) {
    console.log('callback 1 trigger', content);
}

function cb2 (content) {
    console.log('callback 2 trigger', content);
}

function cb3 (content) {
    console.log('callback 3 trigger', content);
};
const EVENT_1 = 'evt 1';

evt.on(EVENT_1, cb1);
evt.on(EVENT_1, cb2);
evt.on(EVENT_1, cb3);

evt.emit(EVENT_1, '发布-订阅模式');

evt.off(EVENT_1, cb2)

evt.emit(EVENT_1, '发布-订阅模式');

console 命令行工具 X clear

                    
>
console