从零开始学习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 类型转换方法
Oct 24 Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
Mar 25 Javascript
ES6新数据结构Set与WeakSet用法分析
Mar 31 Javascript
Vue实现动态响应数据变化
Apr 28 Javascript
Angular模板表单校验方法详解
Aug 11 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
laravel实现中文和英语互相切换的例子
Sep 30 Javascript
JS实现简单打字测试
Jun 24 Javascript
JS倒计时两种实现方式代码实例
Jul 27 Javascript
Node.js web 应用如何封装到Docker容器中
Sep 01 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采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
详解php命令注入攻击
2019/04/06 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
Jquery常用技巧收集整理篇
2010/11/14 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
vue中监听返回键问题
2019/08/28 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
mac下如何将python2.7改为python3
2018/07/13 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
python绘制随机网络图形示例
2019/11/21 Python
python实现文字版扫雷
2020/04/24 Python
Python可以实现栈的结构吗
2020/05/27 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
"序列点" 是什么
2016/07/29 面试题
J2EE面试题
2016/03/14 面试题
函授本科自我鉴定
2013/11/03 职场文书
大一自我鉴定范文
2013/12/27 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
《火烧云》教学反思
2014/04/12 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
教师个人事迹材料
2014/12/17 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
Django框架模板用法详解
2022/06/10 Python