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极简入门教程(一):模块机制
Oct 25 NodeJs
nodejs中操作mysql数据库示例
Dec 20 NodeJs
Nodejs中session的简单使用及通过session实现身份验证的方法
Feb 04 NodeJs
NodeJs——入门必看攻略
Jun 27 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 NodeJs
NodeJS实现视频转码的示例代码
Nov 18 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
详解nodejs 配置文件处理方案
Jan 02 NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 NodeJs
nodejs+koa2 实现模仿springMVC框架
Oct 21 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
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
PHP 第二节 数据类型之字符串类型
2012/04/28 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
告诉大家什么是JSON
2008/06/10 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
前端性能优化及技巧
2016/05/06 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
python逆向入门教程
2018/01/15 Python
python excel转换csv代码实例
2019/08/26 Python
Django之路由层的实现
2019/09/09 Python
keras:model.compile损失函数的用法
2020/07/01 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
质检部部长职责
2013/12/16 职场文书
初中校园广播稿
2014/02/02 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
挂职个人工作总结
2015/03/05 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python
Vue操作Storage本地化存储
2022/04/29 Vue.js