实现一个简单的发布订阅模式_vue订阅者发布者实现

实现一个简单的发布订阅模式_vue订阅者发布者实现JavaScript 发布/订阅模式

大家好,又见面了,我是你们的朋友全栈君。

发布订阅模式可以理解为:

用户关注一个了微信公众号(订阅),当公众号有内容更新时会推送(发布)给所有关注该公众号的用户。

废话不多说直接上代码(此demo仅帮助理解发布/订阅模式):


let Observable = {
    observers:[],     // 订阅者集合
    addObserver:function (observer) { // 添加订阅者
        this.observers.push(observer)
    },
    removeObserver:function (observer) { // 移除订阅者
        let index = this.observers.indexOf(observer);
        if(~index){
            this.observers.splice(index,1);
        }
    },
    notifyObservers:function (message) {  // 向订阅者发布消息
        for(let i = 0; i <= this.observers.length-1; i++){
            this.observers[i](message);
        }
    }
};


function observer1(message){

    console.log(`1---------${message}`);

}

function observer2(message){

    console.log(`2---------${message}`);

}

function observer3(message){

    console.log(`3---------${message}`);

}

// 添加订阅者
Observable.addObserver(observer1);
Observable.addObserver(observer2);
Observable.addObserver(observer3);

// 向订阅者发布(通知)消息
Observable.notifyObservers('hello');

// 移除订阅者
Observable.removeObserver(observer1);

Observable.notifyObservers('test');

输出结果为:
    1---------hello
    2---------hello
    3---------hello
    2---------test
    3---------test
复制代码
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107189.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python舆情系统开发_什么是舆情

    python舆情系统开发_什么是舆情下面的这篇文章将手把手教大家搭建一个简单的股票舆情分析系统,其中将先通过金融界网站爬取指定股票在一段时间的新闻,然后通过百度情感分析接口,用于评估指定股票的正面和反面新闻的占比,以此确定该股票是处于利好还是利空的状态。1、环境准备本地环境:Python3.7IDE:Pycharm库版本:re2.2.1lxml4.6.3requests2.24.0aip4.15.5matplotlib3.2.1然后,导入需要用到的所有库:importrequest

    2022年9月20日
  • C# WinForm界面美化插件简介

    C# WinForm界面美化插件简介 美化C#的WIN程序界面可以考虑用第三方控件,比如DotNetBar或DevExpress。但是它们都是收费的,虽然有破解版。。但是使用时还是需要权衡的。另外,用第三方控件会让运行速度下降。 1.      DevExpress收费软件 2.      Rad 3.      Irisskin2在项目中添加DLL文件,在程序中控制显示即可。使

    2022年5月8日
  • quotient函数_Mid函数

    quotient函数_Mid函数QuotedStr()转载于:https://www.cnblogs.com/ljjphysics/archive/2011/04/25/2028670.html

    2022年10月18日
  • vmware虚拟机怎么安装系统_虚拟机装系统

    vmware虚拟机怎么安装系统_虚拟机装系统‍虽然现在windowsxp已经被win7、win10等系统逐渐取代,不过在很多特殊情况下还需要到XP系统中进行测试。那么这个时候就可以通过安装虚拟机系统来解决问题。常用的虚拟机工具有VMwareWorkstation,下面具体介绍安装虚拟机系统ghostxpsp3的步骤。相关阅读:一、准备工作二、VMware安装虚拟机系统ghostxpsp3步骤图解1、打开VMwareWorkstat…

    2022年8月16日
  • 阿里云 SSL证书部署(DigiCert 免费版 SSL)「建议收藏」

    阿里云 SSL证书部署(DigiCert 免费版 SSL)「建议收藏」阿里云DigiCert免费版SSL有效期一年,过期后需要重新部署SSL所以,不管是第一次部署SSL还是刚接手公司项目SSL就到期的小伙伴都可以看一下该文章,如果有疑问请把疑问写到评论区,我会一一回复问题,不断完善该篇文章

    2022年10月3日
  • EM算法 实例讲解「建议收藏」

    EM算法 实例讲解「建议收藏」第一次接触EM算法,是在完成半隐马尔科夫算法大作业时。我先在网上下载了两份Baum-Welch算法的代码,通过复制粘贴,修修补补,用java实现了HMM算法(应用是韦小宝掷两种骰子的问题)。然后,参考有关半隐马尔科夫算法的论文,照着论文中的公式修改隐马尔科夫算法,完成了大作业。现在回想起来,就隐隐约约记得有一大堆公式。最近,我看到一篇很好的文章,对EM算法的计算有了进一步的了解,文章链接为http

    2022年6月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号