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 相关文章推荐
golang、python、php、c++、c、java、Nodejs性能对比
Mar 12 NodeJs
nodejs 实现模拟form表单上传文件
Jul 14 NodeJs
Nodejs异步回调的优雅处理方法
Sep 25 NodeJs
nodejs教程之异步I/O
Nov 21 NodeJs
Nodejs 获取时间加手机标识的32位标识实现代码
Mar 07 NodeJs
NodeJs的fs读写删除移动监听
Apr 28 NodeJs
NodeJs form-data格式传输文件的方法
Dec 13 NodeJs
nodejs搭建本地服务器轻松解决跨域问题
Mar 21 NodeJs
nodejs 简单实现动态html的方法
May 12 NodeJs
NodeJS 中Stream 的基本使用
Jul 30 NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
PHP与MySQL开发的8个技巧小结
2010/12/17 PHP
非常好用的Zend Framework分页类
2014/06/25 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
ExtJS下grid的一些属性说明
2009/12/13 Javascript
jQuery的学习步骤
2011/02/23 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
Vue实现日历小插件
2019/06/26 Javascript
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
社会实践心得体会
2014/01/03 职场文书
材料员岗位职责
2014/03/13 职场文书
优秀班组事迹材料
2014/12/24 职场文书
报名委托书
2015/01/29 职场文书
辩护词范文大全
2015/05/21 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
python中的None与NULL用法说明
2021/05/25 Python
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技
Nginx报404错误的详细解决方法
2022/07/23 Servers