资讯专栏INFORMATION COLUMN

js实现对主题的订阅(topic订阅),内附源码

guqiu / 997人阅读

摘要:这就是的不过想不明白这么优秀的一个库怎么会没有实现对主题的订阅这个功能呢,是不是中有替代方法,有小伙伴知道的话欢迎给我说一下,不胜感激。

有不合理和错误的地方欢迎小伙伴雅正,与大家共勉
理解对主题订阅

angular中的订阅的实现是用的RX.js库,我们可以用Subject来实现事件的订阅和发布

// 声明一个可观察对象
const obervable = new Subject();
// 订阅
observable.subscript( data => {
    handler...
})
// 发布
observable.next(data)

项目中离不了对同一个可观察对象的不同主题的订阅,比如单页面应用中某个负责权限的可观察对象,进行登录和登出这两个主题进行订阅,这个可观察会根据用户的登录和登出去订阅者发布登录和登出的事件,让订阅者去执行异形系列的操作(大型项目中这有利于降低功能间的耦合)

// 声明一个可观察对象,也是一个事件发布对象
const obervable = new Events();
// 对某个话题订阅
obervable.subscript("login",handler)
obervable.subscript("logout",handler)
// 对某个主题发布实践
observable.publish("login",data)
observable.publish("logout",data)

给大家看个熟悉的,jQuery的on方法,方便小伙伴理解

// 选取一个dom元素
const dom = $("#obervableDom")
// 对这个dom元素的主题进行订阅(事件监听)
dom.on("click",handler)
// dom元素发布主题(触发事件)
dom.click()

熟悉ionic的小伙伴可能有话说了,这不就是ionic的Events吗。这就是ionic的Events,不过想不明白RX.js这么优秀的一个库怎么会没有实现对主题的订阅这个功能呢,是不是RX.js中有替代方法,有小伙伴知道的话欢迎给我说一下,不胜感激。

下面是我根据ionic Events类的思路和代码重写的一个新的Events,用了一些ES6的语法。用法文档没有变化(

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

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

相关文章

  • 观察者设计模式

    摘要:定义观察者设计模式中有一个对象被称为根据观察者维护一个对象列表,自动通知它们对状态的任何修改。与观察者模式不同,它允许任何订阅者实现一个适当的事件处理程序来注册并接收发布者发布的主题通知。 观察者设计模式是一个好的设计模式,这个模式我们在开发中比较常见,尤其是它的变形模式订阅/发布者模式我们更是很熟悉,在我们所熟悉jQuery库和vue.js框架中我们都有体现。我在面试中也曾经被问到o...

    kviccn 评论0 收藏0
  • RocketMQ为什么要保证订阅关系一致性?

    摘要:微信公众号后端进阶,专注后端技术分享框架分布式中间件服务治理等等。 微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 前段时间有个朋友向我提了一个问题,他说在搭建 RocketMQ 集群过程中遇到了关于消费订阅的问题,具体问题如下: showImg(https://segmentfault.com/img/remote/1460...

    gekylin 评论0 收藏0
  • 设计一个基于svg涂鸦组件(一)

    摘要:基于写了一个涂鸦组件,说项目之前先附上几张效果图项目地址由于篇幅问题,本文先总体介绍一下项目的大概情况,重点介绍一下组件间的通信方式。一项目说明该项目是基于构建的多页应用,使用开发,以组件的方式组织代码。 基于svg写了一个涂鸦组件,说项目之前先附上几张效果图: 项目地址:SVGraffiti showImg(https://segmentfault.com/img/bVbassI?w...

    cartoon 评论0 收藏0
  • JS设计模式之Obeserver(观察者)模式、Publish/Subscribe(发布/订阅)模式

    摘要:观察者模式定义设计模式中对的定义一个对象称为维持一系列依赖于它观察者的对象,将有关状态的任何变更自动通知给它们。如图模式比较观察者模式则多了一个类似于话题调度中心的流程,发布者和订阅者解耦。 Obeserver(观察者)模式 定义 《js设计模式》中对Observer的定义:一个对象(称为subject)维持一系列依赖于它(观察者)的对象,将有关状态的任何变更自动通知给它们。 《设计模...

    荆兆峰 评论0 收藏0

发表评论

0条评论

guqiu

|高级讲师

TA的文章

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