从零开始学习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 相关文章推荐
让iframe自适应高度(支持XHTML,支持FF)
Jul 24 Javascript
jquery实现多级下拉菜单的实例代码
Oct 02 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
Jan 16 Javascript
JavaScript动态加载样式表的方法
Mar 21 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
AngularJS constant和value区别详解
Feb 28 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
Mar 08 Javascript
vue.js获得当前元素的文字信息方法
Mar 09 Javascript
JavaScript判断对象和数组的两种方法
May 31 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
Oct 17 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
Nov 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
VFP与其他应用程序的集成
2006/10/09 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Python实现全局变量的两个解决方法
2014/07/03 Python
python去除文件中重复的行实例
2018/06/29 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
优秀士兵个人事迹材料
2014/01/19 职场文书
学生手册家长评语
2014/02/10 职场文书
小学国庆节活动方案
2014/02/11 职场文书
酒店秘书求职信范文
2014/02/17 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
敬老院活动感想
2015/08/07 职场文书