概述
什么是发布订阅模式,其实小伙伴已经用到了发布订阅模式例如addEventListener,Vue eventBus
都属于发布订阅模式
简单来说就是 你要和 大傻 二傻 三傻打球,大傻带球,二傻带水,三傻带球衣。全都准备完成后开始打球。
思维导图
首先 需要定义三个角色 发布者 订阅者 调度者
具体代码
on 订阅/监听
emit 发布/注册
once 只执行一次
off 解除绑定
interface EventFace {
on: (name: string, callback: Function) => void,
emit: (name: string, ...args: Array<any>) => void,
off: (name: string, fn: Function) => void,
once: (name: string, fn: Function) => void
}
interface List {
[key: string]: Array<Function>,
}
class Dispatch implements EventFace {
}