从零开始学习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 相关文章推荐
JavaScript XML操作 封装类
Jul 01 Javascript
js监听输入框值的即时变化onpropertychange、oninput
Jul 13 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
May 27 Javascript
js截取小数点后几位的写法
Nov 14 Javascript
JavaScript中property和attribute的区别详细介绍
Mar 03 Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 Javascript
JS判断iframe是否加载完成的方法
Aug 03 Javascript
基于javascript实现按圆形排列DIV元素(一)
Dec 02 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
Apr 21 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
May 07 Javascript
p5.js实现简单货车运动动画
Oct 23 Javascript
vuex存储token示例
Nov 11 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
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
python三元运算符实现方法
2013/12/17 Python
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Python设计模式之迭代器模式原理与用法实例分析
2019/01/10 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
django的autoreload机制实现
2020/06/03 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
体育学院毕业生自荐信
2013/11/03 职场文书
奥巴马演讲稿
2014/01/08 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
元旦趣味活动方案
2014/08/22 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
2014年底个人工作总结
2015/03/10 职场文书
心术观后感
2015/06/11 职场文书
Redis如何实现分布式锁
2021/08/23 Redis
JavaScript实现栈结构详细过程
2021/12/06 Javascript