从零开始学习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之大字符串的连接的StringBuffer 类
May 08 Javascript
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
Sep 10 Javascript
javscript对象原型的一些看法
Sep 19 Javascript
javascript动态加载二
Aug 22 Javascript
web css实现整站样式互相切换
Oct 29 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
Jan 07 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
Sep 20 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
js简单正则验证汉字英文及下划线的方法
Nov 28 Javascript
jquery实现提示语淡入效果
May 05 jQuery
js实现延迟加载的几种方法详解
Jan 19 Javascript
js抽奖转盘实现方法分析
May 16 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比较两个字符串长度的方法
2015/07/13 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
php常用的工具开发整理
2019/09/26 PHP
js确定对象类型方法
2012/03/30 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Flask之请求钩子的实现
2018/12/23 Python
Python模块的加载讲解
2019/01/15 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
python操作链表的示例代码
2020/09/27 Python
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
.NET方向面试题
2014/11/20 面试题
求职自荐信格式
2013/12/04 职场文书
业务副厂长岗位职责
2014/01/03 职场文书
房地产项目建议书
2014/03/12 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
临时租车协议范本
2014/09/23 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
mysql部分操作
2021/04/05 MySQL