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中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
NodeJS中Buffer模块详解
Jan 07 NodeJs
NodeJs中的VM模块详解
May 06 NodeJs
NodeJS处理Express中异步错误
Mar 26 NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 NodeJs
ajax +NodeJS 实现图片上传实例
Jun 06 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
Nov 20 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
nodejs实现的http、https 请求封装操作示例
Feb 06 NodeJs
nodejs制作小爬虫功能示例
Feb 24 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
深入探讨<br />和 \r\n两者有什么区别??
2013/06/05 PHP
页面乱码问题的根源及其分析
2013/08/09 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
调试php程序的简单步骤
2019/10/04 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
python使用Matplotlib画饼图
2018/09/25 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
商务英语专业求职信范文
2014/01/28 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
教室标语大全
2014/06/21 职场文书
学习张林森心得体会
2014/09/10 职场文书
皇城相府导游词
2015/02/06 职场文书
小学中队长竞选稿
2015/11/20 职场文书
python 中的@运算符使用
2021/05/26 Python