位置: 编程技术 - 正文

浅谈node的事件机制(node解决了什么问题)

编辑:rootadmin

推荐整理分享浅谈node的事件机制(node解决了什么问题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node解决了什么问题,node案例,node案例,node解决了什么问题,node的理解,node node,node node,node的事件机制,内容如对您有帮助,希望把文章链接给更多的朋友!

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.

在nodejs的官方文档中,明确写出了node的一个特性是event-driven(事件驱动),可见其非常重要。查看源码,我们可知其事件机制为用js写的EventEmitter类,写得非常优雅且应用了发布/订阅模式。

通过实现一个简易的、具有发布/订阅模式的事件机制,以此来理清EventEmitter类的实现思路

Publish/Subscribe(发布/订阅模式)

类比

要讲的是一个模式,模式这个词,听起来就很抽象。我们先举个栗子。假设有一家报纸机构,提供晨报、午报、晚报。如果你想要看某种报纸,你需要向报纸机构订阅,等对应的报纸发布出来后,报纸机构就会通知你来拿报纸。

在这个过程中,报纸机构实现了两个功能,一是接受客户的订阅;二是发布不同类型的报纸。发布报纸的时候,订阅该类型报纸的客户就能接收到通知。

这个报纸机构也就是我们要实现的事件机制。

目的

浅谈node的事件机制(node解决了什么问题)

从上面的例子可以看出:1.发布报纸;2.将报纸给到客户;这个连续的过程由于报纸机构的存在,变成了可以先订阅,再发布,等到发布就自动送到客户手中,实现了动作时间上的分离。这也是发布/订阅系统的优势。

实现思路

我们有3种报纸,对应3个事件,每个事件发生时要通知客户。对应的数据格式可以如下:

由于每种报纸都可能有不止一个人订阅,那么格式可优化成这样:

当用户订阅的时候,我们就将其事件添加对应的数组中;当事件发布的时候,就执行相应事件。说白了就是先存储后使用。

具体代码如下:

1.on表示订阅,将事件添加到对应数组中2.emit表示发布,将对应数组中的数据取出来执行3.off表示删除无用的事件

node的EventEmitter

node的EventEmitter基本逻辑和上面提供的例子基本一样,只是更加复杂些。

1.订阅事件on

2.发布事件

讲到这里,相信大家已经明白EventEmitter的实现思路。

参考资料

node events.js

标签: node解决了什么问题

本文链接地址:https://www.jiuchutong.com/biancheng/379555.html 转载请保留说明!

上一篇:NodeJs通过async/await处理异步的方法(nodejs await)

下一篇:详解使用Typescript开发node.js项目(简单的环境配置)(typescript的type)

  • 减免的企业所得税计入什么科目
  • 二手房交易需要购房发票吗
  • 个调税新政策
  • 免抵税额什么时候缴纳城建税
  • 退税发票误勾选确认
  • 冲企业所得税的分录
  • 年初数和年末数审计报告不一致
  • 车间一般性耗用材料会计分录
  • 发出材料计划成本例题
  • 保险没有合同能退保吗
  • 转出未交增值税借方余额怎么处理
  • 政府扶持资金是什么意思
  • 积累与消费比例怎么计算
  • 发票跨月还能重开吗
  • 出口免税进项税额转出会计分录
  • 村集体收入所得税率多少
  • 行邮税税率表2023
  • 建筑业增值税税率由11调整到10
  • 公司为员工需要承担哪些责任
  • 计划成本法如何计算材料成本差异率
  • 公园门票可以报销吗
  • 小规模纳税人减按1%如何填报申报表
  • 车间办公费计入什么会计科目
  • 回迁安置房拆一次多少钱
  • 个体工商户公转私用途写什么
  • win11资源管理器卡死
  • mac终端怎么运行命令
  • 企业收到政府补助需要开发票吗
  • 购买银行承兑汇票是否违法
  • mac怎么airdrop给ipad
  • 经营出租设备属于什么科目
  • 2022年苹果iphone14视频配音乐
  • 期间费用计入产后成本吗
  • 电影剧本如何代替
  • 今夕七夕
  • php socket编程
  • php反转字符串方法
  • 基于php的系统
  • vuejs props
  • 销售过程会计核算视频
  • 计算机视觉项目论文
  • php设计模式六大原则
  • Java多线程(6):锁与AQS(中)
  • 保障金计入什么科目
  • sql server go语句
  • 印花税申报的流程有哪些
  • db2 798
  • 小企业长期债券投资入账价值
  • 增值税勾选统计后如何导出明细表
  • 库存商品过期报废会计分录
  • 备用金有发票抵扣吗
  • 自然人扣缴客户端恢复数据
  • 电商平台经销商
  • 待抵扣进项税额和待认证进项税额的区别
  • 现金短缺无法查明计入什么科目
  • 领用自产产品用于固定资产
  • 税前扣除项目主要包括
  • 什么情况下需要打狂犬疫苗
  • sql server数据库正在恢复
  • Windows自带的游戏怎么删除
  • xp安装声卡驱动
  • xp系统安装程序没反应
  • windows server 2008.
  • chcfg.exe是什么
  • win8安全模式黑屏
  • windows7文件夹选项在哪里
  • linux进程和线程底层实现原理一样吗
  • linux怎么安装iso
  • securecrt输入中文乱码
  • supervisor producer
  • 注册表危险组件怎么安装
  • 深入探究替换词
  • python ip地址转换
  • js alert()
  • jquery单击事件和双击事件
  • js判断密码是否符合标准
  • django for
  • js编写一个标准的单例模式类
  • jquery获取url地址
  • 新能源车需要缴纳购置税吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设