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


Posted in Javascript onApril 13, 2017

本文实例讲述了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,..){
    //接收到事件后的操作
// });

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

每秒输出一次

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

Javascript 相关文章推荐
远离JS灾难css灾难之 js私有函数和css选择器作为容器
Dec 11 Javascript
javascript向flash swf文件传递参数值注意细节
Dec 11 Javascript
jQuery焦点图切换特效代码分享
Sep 15 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
Jun 22 Javascript
Vue.js每天必学之Class与样式绑定
Sep 05 Javascript
浅谈jquery上下滑动的注意事项
Oct 13 Javascript
原生JS简单实现ajax的方法示例
Nov 29 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
vue如何通过id从列表页跳转到对应的详情页
May 01 Javascript
mpvue构建小程序的方法(步骤+地址)
May 22 Javascript
layer弹出层倒计时关闭的实现方法
Sep 27 Javascript
原生JS实现贪吃蛇小游戏
Mar 09 Javascript
详解angularJs指令的3种绑定策略
Apr 13 #Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
Apr 13 #Javascript
Vue组件tree实现树形菜单
Apr 13 #Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
Apr 13 #Javascript
Angularjs 动态添加指令并绑定事件的方法
Apr 13 #Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 #Javascript
JS传参及动态修改页面布局
Apr 13 #Javascript
You might like
国内咖啡文化
2021/03/03 咖啡文化
一篇入门的php Class 文章
2007/04/04 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP开发注意事项总结
2015/02/04 PHP
深入浅析用PHP实现MVC
2016/03/02 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
Python字符串详细介绍
2015/05/09 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
python getopt详解及简单实例
2016/12/30 Python
详解Python用户登录接口的方法
2019/04/17 Python
python global关键字的用法详解
2019/09/05 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
党支部三会一课计划
2014/09/24 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
天下第一关导游词
2015/02/06 职场文书
就业推荐表院系意见
2015/06/05 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS