nodejs事件模块
nodejs 事件模块 events 只有一个对象 EventEmitter 。
var EventEmitter = require('events').EventEmitter;
var life = new EventEmitter(); //生成 EventEmitter 对象的实例 life 。
//on 也可以用 addEventListener
life.on('EventName',function(name){ //对 EventEmitter 对象的实例 life 增加一个事件监听,第一个参数是 事件的名字, 第二个参数是 事件被触发时 ,执行的函数。
console.log("I am ", name);
})
life.emit('EventName','Kobe'); //触发 EventName 事件,第一个参数是事件名,第二个参数是 事件监听函数 需要的参数 。 输出 I am Kobe
life.emit('EventName','kobe','bryant'); //输出 I am Kobe
life.on('EventName',function(name){ //可以对同一个事件名 EventName 注册多个监听函数,当EventName 被触发时,依此执行监听函数。(当 on 注册的函数写在 emit 后时,该函数不被执行 )
console.log("My name is ", name);
})
官方建议对一个事件不要设置超过10个监听器。这个值可以修改: life.setMaxListeners(11); 对单个事件设置最大额度。
如果对life 注册另外一个名字的事件,不会占用最大值。
life.on('EventName2',function(name){ //对life注册另一个事件 EventName2
console.log("My name is ", name);
})
var hasConfortListener = life.emit('EventName2','Kobe') //emit 函数会返回一个bool值,如果该事件被监听,则返回true, 否则返回false 。
删除事件监听函数:removeListener()
不可使用匿名函数删除事件监听,没有效果 。需要通过实名函数删除:
var water = function(name){
console.log("I am ", name);
}
life.on('EventName',water);
life.removeListener('EventName',water); //删除 EventName 事件的 water 这个监听函数 。
life.listeners('EventName').length 返回 EventName 事件的监听函数个数。 也可以写成: EventEmitter.listenerCount(life,'EventName') 两个参数:事件实例名, 事件名。
life.removeAllListeners() 删除所有事件的所有监听函数。
life.removeAllListeners('EventName') 删除'EventName' 事件的所有监听函数。
nodejs事件模块的更多相关文章
- 自己实现一个javascript事件模块
nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...
- 深入理解nodejs的异步IO与事件模块机制
node为什么要使用异步I/O 异步I/O的技术方案:轮询技术 node的异步I/O nodejs事件环 一.node为什么要使用异步I/O 异步最先诞生于操作系统的底层,在底层系统中,异步通过信号量 ...
- nodejs -- event 模块, 事件模块.
1. 注册事件 on 或者 addListener,触发事件 emit 1-1简单的使用: var EventEmitter = require('events').EventEmitter; var ...
- Nodejs核心模块
(1)全局对象 在浏览器JS中,通常window是全局对象,而nodejs中的全局对象是global,所有全局变量都是global对象的属性. 在nodejs中能够直接访问到的对象通常都是global ...
- nodejs cluster模块初探
大家都知道nodejs是一个单进程单线程的服务器引擎,不管有多么的强大硬件,只能利用到单个CPU进行计算.所以,为了使用多核cpu来提高性能 就有了cluster,让node可以利用多核CPU实现并行 ...
- EventEmitter:nodeJs事件触发机制
Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列 Node.js 里面的许多对象都会分发事件:一个 net.Server 对象会在每次有新连接时触发一个事件, 一个 fs.r ...
- nodejs事件的监听与事件的触发
nodejs事件(Events) 一.事件机制的实现 Node.js中大部分的模块,都继承自Event模块(http://nodejs.org/docs/latest/api/events.html ...
- nodejs 事件机制
node 事件机制 一 三种定时器 NodeJS中有三种类型的定时器:超时时间.时间间隔.即时定时器 1.超时时间:setTimeout(callback,delayMilliSeconds,[a ...
- Backbone事件模块及其用法
事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它.通过继承Events的方法来实现事件的管理,可以说 ...
随机推荐
- ASP.Net开发基础温故知新学习笔记
申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在H ...
- iOS开发系列--Objective-C之KVC、KVO
概述 由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby.Python的动态特性,例如动态类型.动态加载.动态绑定等.今天我们着重介绍ObjC中的键值编码(KVC).键值监听( ...
- Hibernate 3.3.2 文档翻译 Day01
Hibernate 3.3.2 文档翻译 翻译人:微冷的雨 第一次书写:2015年11月29日 本人呕心沥血之作,请细心阅读领悟! Day01-1.1 项目描述 微冷的雨翻译:例如,我们将要建立一个可 ...
- C语言 · 求矩阵各个元素的和
问题描述 这里写问题描述. 输入格式 测试数据的输入一定会满足的格式. 例:输入的第一行包含两个整数n, m,分别表示矩阵的行数和列数.接下来n行,每行m个正整数,表示输入的矩阵. 输出格式 要求用户 ...
- Referenced file contains errors (http://www.springframework.org/schema/context). For more information, right click on the message in the Problems
spring 配置文件的DTD或schema出问题,一般两种情况: 1.当前网络环境不稳定,按住ctrl+"http://www.springframework.org/schema/con ...
- java 成长之路
分享总结 title: java 成长之路 tags: grammar_cjkRuby: true 经验差异 1-3年 要求 建议 3-5年 建议 5年+ 经验差异 最近一年比较忙,经历了创业公司的倒 ...
- Leetcode-83 Remove Duplicates from Sorted List
#83. Remove Duplicates from Sorted List Given a sorted linked list, delete all duplicates such that ...
- Leetcode-190 Reverse Bits
#190. Reverse Bits Reverse bits of a given 32 bits unsigned integer. For example, given input 432615 ...
- Unity 特殊文件夹 : 位置不能随便放
有以下几个文件夹: Assets 用来存放资源的文件夹,包括各种材质.模型等 Editor 编辑器类等脚本 Editor Default Resources Editor scripts can ma ...
- Windows phone 全景视图
Windows phone 全景视图下为了实现可以上下滑动需要使用listbox. 需要的布局什么的,在listbox中填写 <ListBox Name="ListBox_new&qu ...