这篇文章给大家介绍JavaScript中事件发布/订阅模式的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
具体如下:
1、发布/订阅模式也是诸多设计模式当中的一种;
2、这种方式可以在es5下相当优雅地处理异步操作;
3、什么是发布/订阅呢?我们举个栗子:
假设fn1,fn2,fn3都可以视作一个事件的发布者,执行它,就会发布一个事件。这个时候,我们可以通过一个事件的订阅者去批量订阅并处理这些事件,包括它们的先后顺序。增加一个消息订阅者的方法:
class AsyncFunArr { constructor (...arr) { this.funcArr = [...arr] } next () { const fn = this.funcArr.shift() if (typeof fn === 'function') fn() } run () { this.next() } }
4、调用
//首先将fn1,fn2,fn3订阅 const asyncFunArr = new AsyncFunArr(fn1, fn2, fn3) //fn1,fn2,fn3作为分布者分别调用其next()方法: function fn1 () { console.log('Function 1') asyncFunArr.next() } function fn2 () { setTimeout(() => { console.log('Function 2') asyncFunArr.next() }, 500) } function fn3 () { console.log('Function 3') asyncFunArr.next() }
5、输出:
// Function 1
// Function 2
// Function 3
1、能够嵌入动态文本于HTML页面。2、对浏览器事件做出响应。3、读写HTML元素。4、在数据被提交到服务器之前验证数据。5、检测访客的浏览器信息。6、控制cookies,包括创建和修改等。7、基于Node.js技术进行服务器端编程。
关于JavaScript中事件发布/订阅模式的原理是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下风纳云fengnayun.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
© 2022-2023 Fengnayun.com 版权所有 | 沪ICP备2022019637号-1 | 51LA统计
增值电信业务经营许可证:B1-20223846 | 黔作登字-2022-F-00488892
代理域名注册服务机构:成都西维数码科技有限公司 | 部分地域产品合作单位:云南悍铭科技有限公司