分享更有价值
被信任是一种快乐

怎么使用Node.js的内置模块event实现发布订阅模式

文章页正文上

这篇文章主要介绍了怎么使用Node.js的内置模块event实现发布订阅模式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Node.js的内置模块event实现发布订阅模式文章都会有所收获,下面我们一起来看看吧。引入event内置模块创建event对象event内置模块本质是一个构造函数,我们需要通过new操作符去调用它监听事件使用event对象上的on函数来定义一个监听事件,语法为:event.on(事件名,事件处理函数)触发事件使用event对象上的emit函数来触发监听的事件,语法为:event.emit(需要触发的事件名,需要给事件处理函数传递的参数)完整代码运行结果:❗️ 事件重复监听的问题==注意:当同一事件被监听多次时,触发事件时会同时触发这个事件的所有事件处理函数==Node.js | 搭建后端服务器(含内置模块 http | url | querystring 的使用)中有一个使用node模拟get请求(转发跨域数据)的案例:注意上面代码的第19行和第49行:这个例子中,我们是通过在httpget函数中传入一个回调函数来接收httpget函数获取到的数据,这种写法实际是没有问题的,在开发中也常常进行使用。但在一些情况下,特别是函数多层嵌套调用时(如下面的例子),这种写法就显得不够优雅,因为它的代码结构不是很清晰,不能很直观的看懂其逻辑:让我们使用内置模块event去改造一下上面node模拟get请求(转发跨域数据)的案例:运行并调用/api/maoyan接口:接口正常使用注意上边代码new EventEmitter()的位置,如果new EventEmitter()是在外部的话,相当于是只有一个全局的event对象,当我们每次调用/api/maoyan接口时,node都会监听一个新的resEnd事件,这就会导免费云主机、域名resEnd事件被重复监听:所以我们才需要将创建event对象的代码new EventEmitter()写到接口的case分支里,这样当我们调用这个接口时,会创建一个新的event对象,老的event对象被弃用会被JS垃圾处理机制给处理掉,这样就不会出现resEnd事件被重复监听的问题关于“怎么使用Node.js的内置模块event实现发布订阅模式”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么使用Node.js的内置模块event实现发布订阅模式”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注云技术行业资讯频道。

相关推荐: 如何不通过webpack来编译vue

本篇内容介绍了“如何不通过webpack来编译vue”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 引入vue.js在不使用webpack编译的情况下,我们需要…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册