发布订阅模式

84 阅读1分钟

实际上就是一对多的模式

申请成功后,会发送给订单,审核员,消息中心

publish.jpg

class Event(){
    hanlders = {}
    addHanlder(name,hanlder){
        if(this.hanlders[name]){
            this.hanlders[name].push(hanlder)
        }else{
            this.hanlders[name] = [hanlder]
        }
    }
    delHanlder(name,hanlder){
        if(this.hanlders[name]){
           
        }
    }
    triggle(name,...params){
        //使用foreach要先判断下数组是否存在,不然会报错
        if(this.hanlders[name]){
            this.halders[naem].forEach(hanlder=>{
                hanlder(...params)
            })
        }
    }
}

使用发布订阅功能

    const myEvent = new Event()
    //订阅
    myEvent.addHanlder('success',()=>{
        console.log('成功了1')
    })
    myEvent.addHanlder('success',()=>{
        console.log('成功了2')
    })
    //发布
    myEvent.triggle('success')