从零开始学习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中“基本类型”之争小结
Jan 03 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
Jun 08 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
Nov 28 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
May 05 Javascript
jQuery学习笔记之toArray()
Jun 09 Javascript
推荐5 个常用的JavaScript调试技巧
Jan 08 Javascript
js倒计时抢购实例
Dec 20 Javascript
微信小程序开发之实现自定义Toast弹框
Jun 08 Javascript
微信小程序数据分析之自定义分析的实现
Aug 17 Javascript
Vue函数式组件-你值得拥有
May 09 Javascript
element form 校验数组每一项实例代码
Oct 10 Javascript
vue+ESLint 配置保存 自动格式化代码
Mar 17 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根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
Python面向对象之类的内置attr属性示例
2018/12/14 Python
浅析python的Lambda表达式
2019/02/27 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
python实现网页录音效果
2020/10/26 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
军训感想500字
2014/02/20 职场文书
《掌声》教学反思
2014/02/23 职场文书
小学生评语大全
2014/04/18 职场文书
2014年技术员工作总结
2014/11/18 职场文书
党性分析材料格式
2014/12/19 职场文书
三年级学生期末评语
2014/12/26 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书