从零开始学习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的键盘控制事件说明
Apr 15 Javascript
javascript appendChild,innerHTML,join性能比较代码
Aug 29 Javascript
js 小贴士一星期合集
Apr 07 Javascript
ECMAScript 创建自己的js类库
Nov 22 Javascript
jQuery中get和post方法传值测试及注意事项
Aug 08 Javascript
javascript新闻跑马灯实例代码
Jul 29 Javascript
js利用正则表达式检验输入内容是否为网址
Jul 05 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
Dec 02 Javascript
详解webpack打包vue时提取css
May 26 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
Dec 13 Javascript
微信小程序实现打卡日历功能
Sep 21 Javascript
vue+ts下对axios的封装实现
Feb 18 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实现ping
2006/10/09 PHP
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
js编写简易的计算器
2020/07/29 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python函数中定义参数的四种方式
2014/11/30 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
土木工程毕业生自荐信
2013/11/12 职场文书
班长自荐书范文
2014/02/11 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
2015年测量员工作总结
2015/05/23 职场文书
国王的演讲观后感
2015/06/03 职场文书