定义
一种消息范式,消息的发布者不会将消息直接发送给特定订阅者,而是通过消息通道广播出去,然后订阅者通过订阅获取想要的信息
场景
当一个模块完成后需要通知其它多个模块执行相应任务时
const EventEmit = function() {this.events = {}this.on = function(name, cb) {if(this.events[name]) {this.events[name].push(cb)} else {this.events[name] = [cb]}}this.emit = function(name, ...args) {if(this.events[name]) {this.events[name].forEach(callBackFn => {callBackFn(...args)})}}}let event = new EventEmit()event.on('success', () => {console.log('监听到事件success完成去执行任务A')})event.on('success', () => {console.log('监听到事件success完成去执行任务B')})event.on('success', () => {console.log('监听到事件success完成去执行任务C')})event.emit('success')
输出
监听到事件success完成去执行任务A监听到事件success完成去执行任务B监听到事件success完成去执行任务C
