从零开始学习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 相关文章推荐
一个多次搜索+多次传值的解决方案
Jan 20 Javascript
捕获和分析JavaScript Error的方法
Mar 25 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 Javascript
php读取sqlite数据库入门实例代码
Jun 25 Javascript
javascript自定义函数参数传递为字符串格式
Jul 29 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
Sep 22 Javascript
原生JavaScript实现瀑布流布局
Jun 28 Javascript
jquery获取点击控件的绝对位置简单实例
Oct 13 Javascript
jQuery 的 ready()的纯js替代方法
Nov 20 Javascript
浅谈ES6新增的数组方法和对象
Aug 08 Javascript
JavaScript基于用户照片姓名生成海报
May 29 Javascript
vue过滤器实现日期格式化的案例分析
Jul 02 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
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
php多文件上传功能实现原理及代码
2013/04/18 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
Python如何读写字节数据
2020/08/05 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
python 如何停止一个死循环的线程
2020/11/24 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
navabi英国:设计师大码女装
2019/06/25 全球购物
可贵的沉默教学反思
2014/02/06 职场文书
委托书模板
2014/04/04 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
教师考核表个人总结
2015/02/12 职场文书
学生会辞职信
2015/03/02 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
银行培训心得体会范文
2016/01/09 职场文书
Django migrate报错的解决方案
2021/05/20 Python
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android
Linux中文件的基本属性介绍
2022/06/01 Servers