博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈-订阅发布模式
阅读量:5051 次
发布时间:2019-06-12

本文共 1264 字,大约阅读时间需要 4 分钟。

function Wechat(){        this.state = [];                //    订阅        this.subscribe = function(obj){            this.state.push(obj)        };                //    发布        this.publish = function(){            this.state.forEach(function(v){                v.natice();            })        };                //    取消订阅        this.unsubcribe = function(obj){            this.state.forEach((items,index)=>{                if(items === obj){                    this.state.splice(index,1)                }            })        };    }        var zhangsan = {        'name':'张三',        natice:function(){            console.log(this.name+'收到了新闻')        }    }        var lisi = {        'name':'李四',        natice:function(){            console.log(this.name+'收到了新闻')        }    }        var WechatPublish = new Wechat();    //    张三和李四订阅了    WechatPublish.subscribe(zhangsan)    WechatPublish.subscribe(lisi)        //    微信每隔2秒发布一个新闻给订阅的人        setInterval(function(){        WechatPublish.publish()        console.log(WechatPublish.state)    },2000)        //    6秒后张三实在受不了了,一怒之下取消了订阅    setTimeout(function(){        WechatPublish.unsubcribe(zhangsan)        console.log(WechatPublish.state)    },6000)

 

转载于:https://www.cnblogs.com/web-zqk/p/8654205.html

你可能感兴趣的文章
iOS 日常工作之常用宏定义大全
查看>>
PHP的SQL注入技术实现以及预防措施
查看>>
MVC Razor
查看>>
软件目录结构规范
查看>>
Windbg调试Sql Server 进程
查看>>
linux调度器系列
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
SVN服务器搭建和使用(三)(转载)
查看>>
Android 自定义View (三) 圆环交替 等待效果
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
Swift 中的指针使用
查看>>
Swift - 使用闭包筛选过滤数据元素
查看>>