从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例

发布时间 - 2026-01-11 00:38:42    点击率:

本文实例讲述了Node.js EventEmitter发送和接收事件的方法。分享给大家供大家参考,具体如下:

pulser.js

/*
 EventEmitter发送和接收事件
 HTTPServer和HTTPClient类,它们都继承自EventEmitter
 EventEmitter被定义在Node的事件(events)模块中,直接使用EventEmitter类需要先声明require('events'),
 否则不必显式声明require('events'),因为Node中很多对象都无需你调用require('events')就会使用EventEmitter
 */
var events = require('events');
var util = require('util');
function Pulser(){
  events.EventEmitter.call(this);
}
util.inherits(Pulser, events.EventEmitter);
Pulser.prototype.start = function(){
  var self = this;
  this.id = setInterval(function(){
    util.log('>>>>pulse');
    self.emit('pulse');
    util.log('<<<<pulse');
  }, 1000);
}
//定义了一个类Pulser,该类(通过util.inherits)继承自EventEmitter,它的作用是每隔一秒钟向所有监听器发送一个定时事件。
//start方法使用了setInterval这个函数来定期重复执行回调函数,并调用emit方法将pulse事件发送给每一个监听器
//使用Pulser对象
/*
创建了一个Pulser对象并处理其pulse事件,执行pulser.on('pulse'..)为pulse事件和回调函数建立联系
 */
var pulser = new Pulser();
pulser.on('pulse', function(){
  util.log('pulse received');
});
pulser.start();
//对象使用emit函数发送事件,所有注册到对应事件的监听器都可以收到事件;
//通过调用.on方法注册监听器,参数是事件名,并用一个回调函数接收事件
//通常来说,有一些数据需要伴随着事件同时发送 self.emit('eventName', data1, data2, ..);
//emitter.on('eventName', function(data1, data2,..){
    //接收到事件后的操作
// });

每秒输出一次

希望本文所述对大家nodejs程序设计有所帮助。


# Node.js  # EventEmitter  # 发送  # 接收  # 事件  # Node.js原理阻塞和EventEmitter及其继承的运用实战  # node.js如何自定义实现一个EventEmitter  # 关于Node.js的events.EventEmitter用法介绍  # node.js中的events.EventEmitter.listenerCount方法使用说明  # Node.js中的EventEmitter类使用小结  # 回调  # 就会  # 给大家  # 每隔  # 所述  # 程序设计  # 发送给  # 使用了  # 讲述了  # HTTPClient  # events  # brush  # HTTPServer  # var  # util  # require  # emitter  # js  # prototype 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JS碰撞运动实现方法详解  大型企业网站制作流程,做网站需要注册公司吗?  详解阿里云nginx服务器多站点的配置  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Firefox Developer Edition开发者版本入口  iOS验证手机号的正则表达式  电商网站制作价格怎么算,网上拍卖流程以及规则?  Python文本处理实践_日志清洗解析【指导】  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  微信小程序 input输入框控件详解及实例(多种示例)  如何用PHP快速搭建高效网站?分步指南  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  jQuery中的100个技巧汇总  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  微信小程序制作网站有哪些,微信小程序需要做网站吗?  无锡营销型网站制作公司,无锡网选车牌流程?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  如何在新浪SAE免费搭建个人博客?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  javascript读取文本节点方法小结  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  如何在IIS中新建站点并配置端口与物理路径?  如何用美橙互联一键搭建多站合一网站?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  JavaScript实现Fly Bird小游戏  如何在云指建站中生成FTP站点?  如何自定义建站之星模板颜色并下载新样式?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  网站制作壁纸教程视频,电脑壁纸网站?  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel怎么实现模型属性的自动加密  如何在七牛云存储上搭建网站并设置自定义域名?  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  如何正确选择百度移动适配建站域名?