从零开始学习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下的keyCode键码值表
Apr 10 Javascript
学习ExtJS TextField常用方法
Oct 07 Javascript
实现点击列表弹出列表索引的两种方式
Mar 08 Javascript
详解jquery uploadify 上传文件
Nov 09 Javascript
给ListBox添加双击事件示例代码
Dec 02 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
高效的jquery数字滚动特效
Dec 17 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
Feb 25 Javascript
JavaScript 继承详解(五)
Oct 11 Javascript
canvas绘制表盘时钟
Jan 23 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
Mar 29 Javascript
JavaScript中var、let、const区别浅析
Jun 24 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
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
Yii配置文件用法详解
2014/12/04 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
js function使用心得
2010/05/10 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
jQuery事件用法详解
2016/10/06 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
vue动态设置页面title的方法实例
2020/08/23 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
解决django前后端分离csrf验证的问题
2019/02/03 Python
python之信息加密题目详解
2019/06/26 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
中年人生感言
2014/02/04 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS