美文网首页
手写一个订阅发布者模式

手写一个订阅发布者模式

作者: louhangfei | 来源:发表于2019-02-20 22:59 被阅读0次
var Dispatch={
    keys:{},
    
    //订阅,同一个key可以订阅多个不同的函数
    subscribe:function(key, fn, context){
        if(!this.keys[key]){
            this.keys[key]=[]
        }
        this.keys[key].push({fn, context:context});
    },
    
    // 触发某个通知
    notifyObs: function(key,params){
        let fns = this.keys[key] || [];
        if(!fns ||fns.length===0){
            return false;
        }
        for(let i =0; i<fns.length; i++){
            let {fn, context} = fns[i];
            fn.call(context, params)
        }
    },
    
//     // 广播通知所有
//     broadcast: function(){
//         let keys=  this.keys;
//         Object.keys(keys).forEach(item=>{
//             let {fn, context} = keys[item];
//             fn.call(context)
//         })
//     }
    
}

function Student(name){
    this.name = name
}
 s = new Student("lhf");
Student.prototype.study=function(param){
    console.log("myname is ", this.name)
    console.log("study", param)
}

jack = new Student("jack");
Dispatch.subscribe("study", jack.study, jack)

// 订阅
Dispatch.subscribe("study", s.study, s)

Dispatch.notifyObs("study", {type:"notice", num:1})

相关文章

  • 手写一个订阅发布者模式

  • 观察者模式(Observer)

    观察者模式又称为发布订阅模式。一个发布者对应多个订阅者,一旦发布者的状态发生改变时,订阅者将收到订阅事件。本文中涉...

  • 基于TableStore构建简易海量Topic消息队列

    前言 消息队列,通常有两种场景,一种是发布者订阅模式,一种是生产者消费者模式。发布者订阅模式,即发布者生产消息放入...

  • JS-简单实现发布订阅模式

    发布订阅模式主要涉及三个对象:发布者、订阅者、主题对象。 发布-订阅模式 定义  发布-订阅模式又称观察者模式,它...

  • JavaScript常见设计模式(面试篇)

    发布订阅模式 在“发布者-订阅者”模式中,称为发布者的消息发送者不会将消息编程为直接发送给称为订阅者的特定接受者,...

  • MQTT 5.0 特性 | 保留消息

    前言 发布订阅模式虽然让消息的发布者与订阅者充分解耦,但也出现了一个隐含的问题,即订阅者无法主动向发布者请求消息,...

  • Redis教程 - Pub/Sub(发布/订阅)

    Redis提供了 基于 “发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向...

  • redis 学习(12)-- redis 发布订阅

    redis 发布订阅 发布订阅模式中的角色 发布者(publisher) 订阅者(subscriber) 频道(c...

  • 第三章:小功能大用处-发布订阅

    Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定...

  • redis发布订阅

    Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定...

网友评论

      本文标题:手写一个订阅发布者模式

      本文链接:https://www.haomeiwen.com/subject/eutlyqtx.html