从零开始学习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中定义对象类别
Dec 22 Javascript
jQuery实现长按按钮触发事件的方法
Feb 02 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
Dec 24 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
May 16 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
Dec 14 Javascript
jQuery Form表单取值的方法
Jan 11 Javascript
Angular ui.bootstrap.pagination分页
Jan 20 Javascript
深入理解AngularJS中的ng-bind-html指令
Mar 27 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
Oct 10 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
Mar 04 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
Nov 03 Javascript
详解JS WebSocket断开原因和心跳机制
May 07 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 调试工具Debug Tools
2011/04/30 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
php中的依赖注入实例详解
2019/08/14 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python获得文件创建时间和修改时间的方法
2015/06/30 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
总经理岗位职责描述
2014/02/08 职场文书
社区党建工作方案
2014/06/10 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
2014年团总支工作总结
2014/11/21 职场文书
2014年老干部工作总结
2014/11/21 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
销售合作意向书范本
2015/05/08 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
vue 自定义组件添加原生事件
2022/04/21 Vue.js