从零开始学习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 相关文章推荐
jQuery ajax 路由和过滤器使用说明
Aug 02 Javascript
JS的千分位算法实现思路
Jul 31 Javascript
js函数调用的方式
May 06 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
Jun 07 Javascript
javascript相关事件的几个概念
May 21 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
May 17 Javascript
深入解析Javascript闭包的功能及实现方法
Jul 10 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
Sep 18 Javascript
bootstrap的常用组件和栅格式布局详解
May 02 Javascript
React服务端渲染(总结)
Jul 01 Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
详解vue中router-link标签所必备了解的属性
Apr 15 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性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
JS实现简单的顶部定时关闭层效果
2014/06/15 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
2014/09/25 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
python获取网络图片方法及整理过程详解
2019/12/20 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
详解python破解zip文件密码的方法
2020/01/13 Python
Python多线程获取返回值代码实例
2020/02/17 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
详解python logging日志传输
2020/07/01 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
Structs界面控制层技术
2013/10/11 面试题
财政局长自荐信范文
2013/12/22 职场文书
初中美术教学反思
2014/01/29 职场文书
绩效工资实施方案
2014/03/15 职场文书
党员作风建设自查报告
2014/10/23 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
阳光体育运动标语口号
2015/12/26 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书