资讯专栏INFORMATION COLUMN

javascript 发布订阅模式应用

skinner / 3235人阅读

摘要:发布订阅模式应用场景需要用户确定是否执行该操作,才能决定代码逻辑的下一步走向。

发布订阅模式其实一直存在于javascript的编程思想中,javascript的事件管理机制,从某种意义上来说,就是一个发布订阅模式。

发布订阅模式的好处:

可以解决一些异步进行的代码

就算不解决异步问题,也可以使代码逻辑更清晰,更加具有结构化。

发布订阅模式应用场景:

需要用户确定是否执行该操作,才能决定代码逻辑的下一步走向。

为了使代码更加结构化,逻辑清晰,可以自定义事件,然后用类似于jquery中的$("main").trigger("eventName")的机制去触发。

以下是一个简单实用的发布订阅模式的实现代码:

//events - a super-basic Javascript (publish subscribe) pattern
var events = {
    events: {},
    on: function (eventName, fn) {
        this.events[eventName] = this.events[eventName] || [];
        this.events[eventName].push(fn);
    },
    off: function(eventName, fn) {
        if (this.events[eventName]) {
            for (var i = 0; i < this.events[eventName].length; i++) {
                if (this.events[eventName][i] === fn) {
                    this.events[eventName].splice(i, 1);
                    break;
                }
            };
        }
    },
    emit: function (eventName, data) {
        if (this.events[eventName]) {
            this.events[eventName].forEach(function(fn) {
                fn(data);
            });
        }
    }
};

用法如下:
on:绑定事件
off:取消绑定
emit:触发事件

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83620.html

相关文章

  • JavaScript 设计模式(六):观察者模式发布订阅模式

    摘要:观察者模式维护单一事件对应多个依赖该事件的对象关系发布订阅维护多个事件主题及依赖各事件主题的对象之间的关系观察者模式是目标对象直接触发通知全部通知,观察对象被迫接收通知。 观察者模式(Observer) 观察者模式:定义了对象间一种一对多的依赖关系,当目标对象 Subject 的状态发生改变时,所有依赖它的对象 Observer 都会得到通知。 简单点:女神有男朋友了,朋友圈晒个图,甜...

    bingo 评论0 收藏0
  • JavaScript 发布-订阅模式

    摘要:发布订阅模式订阅者把自己想订阅的事件注册到调度中心,当发布者发布该事件到调度中心,也就是该事件触发时,由调度中心统一调度订阅者注册到调度中心的处理代码。 发布-订阅模式,看似陌生,其实不然。工作中经常会用到,例如 Node.js EventEmitter 中的 on 和 emit 方法;Vue 中的 $on 和 $emit 方法。他们都使用了发布-订阅模式,让开发变得更加高效方便。 一...

    13651657101 评论0 收藏0
  • Javascript(七)发布-订阅模式

    摘要:发布订阅的作用发布订阅模式可以广泛应用与异步编程中,这是一种替代传统回调函数的方案。发布订阅模式让两个对象松散耦合地联系在一起,虽然不清楚彼此的细节,但不影响它们之间的通信。 发布-订阅模式又叫观察者模式,它定义与对象间的一种一对多的关系,当一个对象的状态发生改变时,所有依赖与它的对象都将得到通知。 发布订阅的作用 发布-订阅模式可以广泛应用与异步编程中,这是一种替代传统回调函数的...

    megatron 评论0 收藏0
  • 简单理解观察者模式(pub/sub)在前端中的应用

    摘要:概念观察者模式被广泛地应用于客户端编程中。所有的浏览器事件,等都是使用观察者模式的例子。在观察者模式中,一个对象订阅另一个对象的指定活动并得到通知,而不是调用另一个对象的方法。此外,观察者模式还可用于实现数据绑定。 概念 观察者模式被广泛地应用于JavaScript客户端编程中。所有的浏览器事件(mouseover,keypress等)都是使用观察者模式的例子。这种模式的另一个名字叫自...

    guyan0319 评论0 收藏0
  • 设计模式之观察者(发布/订阅模式

    摘要:发布订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系。事件观察者模式应该是最常用的模式之一。总之,当消息一发布,所有的订阅者都会收到消息。发布订阅模式还可以用来帮助实现一些别的设计模式,比如中介者模式。 发布/订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系。当一个对象的状态(发布者)发生改变时,所有依赖于它的对象都将得到通知。在 JavaScript 开发中,我们...

    dreamGong 评论0 收藏0

发表评论

0条评论

skinner

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<