nodejs事件的监听与触发的理解分析


Posted in NodeJs onFebruary 12, 2015

本文实例分析了nodejs事件的监听与触发。分享给大家供大家参考。具体分析如下:

关于nodejs的事件驱动,看了《nodejs深入浅出》还是没看明白(可能写的有点深,或者自己理解能力不够好),今日在图灵社区看到一篇关于nodejs事件的监听与触发,由于给出的例子比较多人,很容易理解,所以也大致明白了nodejs事件驱动。

以下内容参考了图灵社区的文章(地址:http://www.ituring.com.cn/article/177478)

首先来了解一下nodejs的Event模块:

Node.js中大部分的模块,都继承自Event模块。Event模块(events.EventEmitter)是一个简单的事件监听器模式的实现类。它的对象具有addListener,on,once,removeListener,removeAllListeners,emit等基本的事件监听模式的方法实现。

首先看一个例子:

var events = require("events");
var emitter = new events.EventEmitter();//创建了事件监听器的一个对象
// 监听事件some_event
emitter.on("some_event", function(){
  console.log("事件触发,调用此回调函数");
});
setTimeout(function(){
  emitter.emit("some_event");   //触发事件some_event
},3000);

看到这个例子,就让我想起了jQuery的自定义事件:

//给element绑定hello事件
element.on("hello",function(){
  alert("hello world!");
});
//触发hello事件
element.trigger("hello");

这样一对比就很容易理解nodejs的事件的监听与触发了。emit 就相当于 jQuery 中的 trigger 触发事件。

希望本文所述对大家的nodejs程序设计有所帮助。

NodeJs 相关文章推荐
nodejs中exports与module.exports的区别详细介绍
Jan 14 NodeJs
nodejs实现黑名单中间件设计
Jun 17 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
使用Nodejs连接mongodb数据库的实现代码
Aug 21 NodeJs
详解NODEJS的http实现
Jan 04 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
webstorm中配置nodejs环境及npm的实例
May 15 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
nodejs中各种加密算法的实现详解
Jul 11 NodeJs
NodeJS和浏览器中this关键字的不同之处
Mar 03 NodeJs
nodejs 整合kindEditor实现图片上传
Feb 03 #NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 #NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 #NodeJs
NodeJS学习笔记之Connect中间件模块(一)
Jan 27 #NodeJs
nodejs批量修改文件编码格式
Jan 22 #NodeJs
NodeJS学习笔记之MongoDB模块
Jan 13 #NodeJs
NodeJS学习笔记之(Url,QueryString,Path)模块
Jan 13 #NodeJs
You might like
php轻松实现中英文混排字符串截取
2014/05/28 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
canvas的神奇用法
2017/02/03 Javascript
Bootstrap 3 按钮标签实例代码
2017/02/21 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
python中as用法实例分析
2015/04/30 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
Python pandas如何向excel添加数据
2020/05/22 Python
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
党务工作者主要事迹材料
2015/11/03 职场文书
队名及霸气口号大全
2015/12/25 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python