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 相关文章推荐
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
nodejs 实现钉钉ISV接入的加密解密方法
Jan 16 NodeJs
进阶之初探nodeJS
Jan 24 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
angular2+nodejs实现图片上传功能
Mar 27 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
NodeJS创建最简单的HTTP服务器
May 15 NodeJs
详解Windows下安装Nodejs步骤
May 18 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 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
example1.php
2006/10/09 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
教你php如何实现验证码
2016/01/20 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
python批量图片处理简单示例
2019/08/06 Python
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
小学教师师德反思
2014/02/03 职场文书
我的小天地教学反思
2014/04/30 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
女性健康讲座主持词
2015/07/04 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python