微信小程序----使用发布订阅模式

news2025/1/16 8:01:50

目录

前言

小程序使用PubSubJS

获取 PubSubJS

npm 构建

 使用pubsub-js

1、使用publish发布消息

2、使用subscribe函数订阅消息 


前言

发布-订阅模式 又叫 观察者模式。 它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。

在JavaScript开发中,我们一般用事件模型来替代传统的发布订阅模式。

①发布—订阅模式可以广泛应用于异步编程中,这是一种替代传递回调函数的方案。比如,我们可以订阅ajax请求的error、succ等事件。

②可以取代对象之间硬编码的通知机制,一个对象不用再显式地调用另外一个对象的某个接口。

 买房者收到售楼处发布的房源售卖通知。售楼处就是发布者,买房者就是订阅者,订阅的是售卖房源的信息。买房者有很多人,他们会订阅不同的房源(不同的地理位置,价格、周边等),发布者可以根据不同的订阅者发布不同的信息。

小程序使用PubSubJS

PubSubJS 是一个用 JavaScript 编写的基于主题的 发布/订阅库。
PubSubJS 有同步解耦,所以主题是异步发布的。这有助于使您的程序保持可预测性,因为在消费者处理主获取 PubSubJS题时,主题的发起者不会被阻止。

获取 PubSubJS

通过 npm ( npm install pubsub-js)安装

npm install pubsub-js


直接从 CDN 使用它

  • http://www.jsdelivr.com/#!pubsubjs
  • https://cdnjs.com/libraries/pubsub-js
  • https://unpkg.com/pubsub-js

从 GitHub下载标记版本

github.com/mroderick/PubSubJSicon-default.png?t=M85Bhttps://blog.csdn.net/weixin_48138187/article/details/github.com/mroderick/PubSubJSGitHub - mroderick/PubSubJS: Dependency free publish/subscribe for JavaScriptDependency free publish/subscribe for JavaScript. Contribute to mroderick/PubSubJS development by creating an account on GitHub.https://github.com/mroderick/PubSubJS/

npm 构建

选择微信开发者工具顶部栏 -----> 工具 ------> 构建npm

 使用pubsub-js

1、使用publish发布消息

import PubSub from 'pubsub-js'

PubSub.publish('data', 'data')

2、使用subscribe函数订阅消息 

import PubSub from 'pubsub-js'
PubSub.subscribe('data',(msg,data)=>{
  console.log(data)
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

excel图表设计:如何让数据变化更加可视化

挖掘数据背后的意义,不能只是单纯的将原始数据,从数字变成图表;而是要让数据变化具现出来,能直观看到其变化形态。 在我们的实际工作中,通常会看到很多类似下面这种架构的数据。 【正文】 因为这样的数据是非常常见的…

HTTP协议及Servlet详解

目录 HTTP协议 1、HTTP协议简介 2、HTTP协议特点 3、HTTP协议通信流程(工作原理) 4、HTTP报文格式 4.1、HTTP请求报文 4.2、HTTP响应报文 4.3、HTTP状态消息 Servlet详解 1、Servlet核心接口和类 1.1、Servlet接口 1.2、GenericServlet抽象类 …

分层自动化测试模型深入研究

分层自动化测试模型的发展 分层自动化测试模型最早是由Mike Cohn在2009年出版的《Succeeding with Agile》书中的第十六章进行阐述的,他说“测试金字塔是分层测试的一种最佳实践“。金字塔自动化测试模型如上图A所示,从下往上分为单元测试、接口测试、界面测试(其实我更习惯…

C语言 指针进阶学完指针必看练习题详解

该篇与上篇衔接 二维数组 int main() {int a[3][4] { 0 };printf("%d\n", sizeof(a));//48 3*4*sizeof(int)printf("%d\n", sizeof(a[0][0]));//4 第一行第一个元素 就是整形大小printf("%d\n", sizeof(a[0]));//16//a[0]就可以理解为 第…

Windows卸载easyconnect

Windows卸载easyconnect卸载深信服VPN客户端easyconnect解决办法卸载SangforPWEx服务手动卸载安装目录卸载深信服VPN客户端easyconnect Windows下的深信服VPN客户端easyconnect无法卸载. 解决办法 下载地址: http://download.sangfor.com.cn/download/product/sslvpn/Sangfor…

浅谈图数据库1:什么是图?

目录 一、图是什么? 二、“图”源自哪里? 三、加权图是什么? 四、有向图是什么? 五、图能给我们带来什么? 一、图是什么? 说到“图” 大部分人首先想到的是这样滴——图像 ​或者是 饼状图 折线图…

【ML实验4】多分类贝叶斯模型

实验代码获取 github repo 山东大学机器学习课程资源索引 实验目的 实验内容 数据集 构建多分类贝叶斯模型 这里的条件独立性指的是特征xjx_jxj​之间相互独立,这是一个十分强的假设。 证明 Problem Set 2 思路主要是证明下面引理,用拉格朗日乘子法&a…

CP2102国产替代DPU02— USB 转 UART 桥接芯片

DPU02是一个高度集成的USB转UART的桥接控制器,该产品提供了一个简单的解决方案,可将RS-232设计更新为USB设计,并简化PCB组件空间。该DPU02包括了一个USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和带有完整调制解调控制信号的异步串行数…

【聆思CSK6视觉AI开发套件试用】Win11下安装全过程处理兼容性问题以及实现亮灯AI头肩检测

本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站。作者:Wordiansom Win11上并且安装在其他盘的时候会出现的问题坑。。。。。。(能用win10就用win10)。 1. 晚拿到的开发板套件…

冲量在线携手中国电信研究院、北京电信和海光信息打造的数信链网的入选2022“星河”隐私计算标杆案例

为促进大数据技术产品及相关产业发展,加快培育数据要素市场、充分发挥数据作为生产要素的独特价值,树立行业标杆榜样力量,中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)连续六年共同组织大数据“星河&#xf…

Java8 Stream流

目录Java8 Stream流一、Stream概述二、Stream 的创建(4种方式)参考地址(表示感谢):Java8 Stream流 一、Stream概述 Stream API说明 Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是 St…

Gradle Plugin的开发及发布

Gradle Plugin的开发及发布前言插件的开发学习阶段(build.gradle脚本)开发阶段(buildSrc)PluginTaskExtension发布阶段(独立module)发布到本地发布到MavenCentral准备sonatype账号创建pgp证书配置sonatype和…

数据结构与算法基础(王卓)(6):带尾指针(单向)循环链表的合并;双链表及其插入和删除的详细操作

带尾指针(单向)循环链表的合并 PPT(157): 操作前初始设定预设的条件​​​​我们要做的,即: 让A表尾节点指向B表首结点,让B表尾节点指向A表首结点: Project 1: Status 合并链表(…

NVIDIA NCCL 源码学习(九)- 单机内ncclSend和ncclRecv的过程

上节介绍了通信链路的建立过程,本节介绍下单机内部ncclSend和ncclRecv的运行过程。 单机内的通信都是通过kernel来进行的,所以整个通信的过程可以分为两步,第一步是准备kernel相关的参数,第二步是实际执行kernel的过程。 为方便…

闯关(贪心)

某综艺频道推出了一个闯关活动。 活动一共包含 n 个关卡(编号 1∼n),其中 m 个关卡为特殊关卡。 每个关卡都有一个通关分数,其中第 i 个关卡的通关分数为 ai。 挑战者可以自由决定所有关卡的具体挑战顺序,并且每通过…

【工具类】Elasticsearch的HTTP客户端(Java)

一、介绍 1. 原理 Java基于Http请求操作ES,与Kibana上的操作一致。 Kibana上的dsl与Http的关系: GET、POST等同于HTTP的POSTPUT 等同于HTTP的PUTDELETE 等同于HTTP的DELETE 如图 该DSL可转化为HTTP请求 POST ip:port/docwrite/_search 请求体为&…

Mysql online DDL工具:gh-ost

gh-ost特点: 1、不使用触发器。 在gh-ost出现之前第三方MySQL DDL工具均采用触发器的方式进行实现,包括前面percona的pt-osc,Facebook的OSC等等。而gh-ost采用的机制和他们完全不同:它通过MySQL binlog来同步数据。 gh-ost会伪装…

PowerToys 微软效率工具包 使用指南

PowerToys 微软效率工具包 使用教程 Microsoft PowerToys 是一组实用程序,供高级用户调整和简化其 Windows 10 和 11 体验以提高工作效率。 下载 PowerToys⇲ 安装教程 1.双击文件运行 点击我同意 2.等待下载安装完成 3.安装完成 使用指南 Always on Top 通…

FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D)

本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。 双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件 分别安装MotiveBody与MotionVenus并校准人体与数据…

Kafka-Topic创建源码分析

Kafka-Topic创建源码分析 在kafka中,创建topic通过使用kafka-topics.sh脚本或者直接调用AdminClient对外提供的adminApi来进行创建. 即使是使用kafka-topics.sh,其最终会通过生成并调用AdminClient来进行处理. 0,创建topic流程图 1,创建topic示例代码 通过引入A…