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制作爬虫全过程(续)
Dec 22 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
Nodejs Express4.x开发框架随手笔记
Nov 23 NodeJs
nodejs 中模拟实现 emmiter 自定义事件
Feb 22 NodeJs
Nodejs下DNS缓存问题浅析
Nov 16 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
nodejs中向HTTP响应传送进程的输出
Mar 19 NodeJs
详解nodeJS之路径PATH模块
May 31 NodeJs
nodeJS实现简单网页爬虫功能的实例(分享)
Jun 08 NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
Jul 14 NodeJs
NodeJs实现定时任务的示例代码
Dec 05 NodeJs
Nodejs模块载入运行原理
Feb 23 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学习资源和链接.
2006/12/05 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
js自定义回调函数
2015/12/13 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
python dict如何定义
2020/09/02 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
护理自我鉴定范文
2013/10/06 职场文书
会计岗位职责
2013/11/08 职场文书
支部组织生活会方案
2014/06/10 职场文书
在职证明范本
2015/06/15 职场文书