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、Python写的一个简易HTTP静态文件服务器
Jul 18 NodeJs
Nodejs中 npm常用命令详解
Jul 04 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
Nodejs异步回调之异常处理实例分析
Jun 22 NodeJs
NodeJS 中Stream 的基本使用
Jul 30 NodeJs
nodejs中函数的调用实例详解
Oct 31 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 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
虫族 ZERG 概述
2020/03/14 星际争霸
php 正则匹配函数体
2009/08/25 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
PHP 第一节 php简介
2012/04/28 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
2020/05/11 Javascript
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python的id()函数介绍
2013/02/10 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
OpenCV python sklearn随机超参数搜索的实现
2020/01/17 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
迟到检讨书800字
2014/01/13 职场文书
cf战队收人广告词
2014/03/14 职场文书
房屋出租协议书
2014/04/10 职场文书
社区综治工作汇报
2014/10/27 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS