从零开始学习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 相关文章推荐
js玩一玩WSH吧
Feb 23 Javascript
js简单的弹出框有关闭按钮
May 05 Javascript
jquery实现submit提交表单
Feb 03 Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
Oct 13 Javascript
Vue源码解析之Template转化为AST的实现方法
Dec 14 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
Jan 30 Javascript
js实现开关灯效果
Mar 30 Javascript
JavaScript代理模式原理与用法实例详解
Mar 10 Javascript
JavaScript实现优先级队列
Dec 06 Javascript
vue实现Toast组件轻提示
Apr 10 Vue.js
详解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中全局变量global的使用演示代码
2011/05/18 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
JavaScript Timer实现代码
2010/02/17 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Django中的Model操作表的实现
2018/07/24 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
厨师岗位职责
2013/11/12 职场文书
工作经历证明书范文
2014/11/02 职场文书
品质保证书格式
2015/02/28 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
行政诉讼答辩状
2015/05/21 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
导游词之上海豫园
2019/10/24 职场文书
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python