js发布的订阅模式的作用有哪些
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章将为大家详细讲解有关js发布的订阅模式的作用有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、发布订阅模式可以广泛应用于异步编程,这是一
千家信息网最后更新 2025年01月18日js发布的订阅模式的作用有哪些
这篇文章将为大家详细讲解有关js发布的订阅模式的作用有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1、发布订阅模式可以广泛应用于异步编程,这是一种取代回调函数的方案。
2、发布订阅模式可以取代对象之间硬编码的通知机制,一个对象不再需要明确调用另一个对象的接口。
实例
// 由于这些成员对于任何发布者对象都是通用的,故将它们作为独立对象的一个部分来实现是很有意义的。那样我们可将其复制到任何对象中,并将任意给定对象变成一个发布者。// 如下实现一个通用发布者,定义发布者对象……let publisher = { subscribers: { any: [] }, subscribe: function (fn, type = `any`) { if (typeof this.subscribers[type] === `undefined`) { this.subscribers[type] = []; } this.subscribers[type].push(fn); }, unSubscribe: function (fn, type = `any`) { let newSubscribers = []; this.subscribers[type].forEach((item, i) => { if (item !== fn) { newSubscribers.push(fn); } }); this.subscribers[type] = newSubscribers; }, publish: function (args, type = `any`) { this.subscribers[type].forEach((item, i) => { item(args); }); }}; // 定义一个函数makePublisher(),它接受一个对象作为参数,通过把上述通用发布者的方法复制到该对象中,从而将其转换为一个发布者function makePublisher(obj) { for (let i in publisher) { if (publisher.hasOwnProperty(i) && typeof publisher[i] === `function`) { obj[i] = publisher[i]; } } obj.subscribers = { any: [] };} // 实现paper对象var paper = { daily: function () { this.publish(`big news today!`); }, monthly: function () { this.publish(`interesting analysis`, `monthly`); }}; // 将paper构造成一个发布者makePublisher(paper); // 看看订阅对象joe,该对象有两个方法:var joe = { drinkCoffee: function (paper) { console.log(`Just read ` + paper); }, sundayPreNap: function (monthly) { console.log(`About to fall asleep reading this ` + monthly); }}; // paper注册joe(即joe向paper订阅)paper.subscribe(joe.drinkCoffee);paper.subscribe(joe.sundayPreNap, `monthly`); // 即joe为默认"any"事件提供了一个可被调用的方法,而另一个可被调用的方法则用于当"monthly"类型的事件发生时的情况。现在让我们来触发一些事件:paper.daily(); // Just read big news todaypaper.daily(); // Just read big news todaypaper.monthly(); // About to fall asleep reading this interesting analysispaper.monthly(); // About to fall asleep reading this interesting analysispaper.monthly(); // About to fall asleep reading this interesting analysis
关于js发布的订阅模式的作用有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
对象
发布者
订阅
模式
方法
事件
作用
内容
函数
文章
更多
知识
篇文章
不错
两个
之间
参数
实例
情况
成员
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发测试管理流程表
现代的软件开发方法是什么
互联网加算是学术科技竞赛吗
新时代网络安全知识
中兴服务器管理口恢复默认
适合软件开发的公司有哪些
我的世界网易手机版服务器开空岛
数据库生成随机码
动漫软件开发的增值税
趣味文字软件开发ppt
大学生电脑数据库
安卓天气预报软件开发
软件开发兼职待遇
中国网络安全专家发展现状
陕西秦安网络安全管理
安塞网络安全
深圳市中移互联网科技
web服务器包括哪些方面
中学网络安全工作管理体系
窗体是数据库应用系统的什么
服务器关机后灯一直亮
荣耀手机T1-701u服务器
专业网络技术供应
小美互联网科技有限公司
怎么开java我的世界服务器
网络安全兴趣小组相关制度
传感网络技术的应用
中职计算机网络技术专业建设
服务器管理权限帐号
软件开发环境 测试