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教程 安装express及配置app.js文件的详细步骤
May 11 NodeJs
Nodejs进程管理模块forever详解
Jun 01 NodeJs
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
NodeJS实现视频转码的示例代码
Nov 18 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
Nodejs 和 Electron ubuntu下快速安装过程
May 04 NodeJs
NodeJs之word文件生成与解析的实现代码
Apr 01 NodeJs
NodeJs生成sitemap站点地图的方法示例
Jun 11 NodeJs
分享五个Node.js开发的优秀实践 
Apr 07 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
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
python编程嵌套函数实例代码
2018/02/11 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
python实现与redis交互操作详解
2020/04/21 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
常见的软件开发流程有哪些
2015/11/14 面试题
幼儿园教育教学反思
2014/01/31 职场文书
活动总结报告范文
2014/05/04 职场文书
文艺晚会策划方案
2014/06/11 职场文书
自荐信怎么写
2015/03/04 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers