Node.js 核心事件 Events
2014-05-08 17:33
489 查看
EventEmitter
/** * Created by Antianlu on 14-5-8. */ var events = require('events'); var EventEmitter = events.EventEmitter; var http = require('http'); var util = require('url'); var server = http.createServer(function(req,res){ }); /** * Node引擎中很多对象都会触发事件:例如net.Server会在每一次有客户端连接到它时触发事件,又如fs.readStream会在文件打开时触发事件。 * 所有能够触发事件的对象都是events.EventEmitter的实例。你可以通过require("events");访问这个模块。 * 通常情况下,事件名称采用驼峰式写法,不过目前并没有对事件名称作任何的限制,也就是说任何的字符串都可以被接受。 * 可以将函数注册给对象,使其在事件触发时执行,此类函数被称作监听器。比如 obj.on('eventName',fn) */ /** * 源API:events.EventEmitter * 当EventEmitter事件触发器遇到错误时,典型的处理方式是它将触发一个'error'事件。 * Error事件的特殊性在于:如果没有函数处理这个事件,它将会输出调用堆栈,并随之退出应用程序。 * 当新的事件监听器被添加时,所有的事件触发器都将触发名为'newListener'的事件。 */ /** * 源API:emitter.addListener(event, listener) 或者 emitter.on(event, listener) * 两种方法监听事件 * 将一个监听器添加到指定事件的监听器数组的末尾。 */ server.addEventListener('connection',function(stream){}); server.on('connection',function(stream){}); /** * 源API:emitter.once(event, listener) * 为事件添加一次性监听器,第一次触发后并移除该事件 */ server.once('connection',function(stream){}); /** * 源API:emitter.removeListener(event, listener) * 将监听器从指定事件的监听器数组中移除出去。 小心:此操作将改变监听器数组的下标。 */ var callback = function(stream) { //someone connected }; // 监听connection事件 server.on('connection',callback); // 移除监听事件 server.removeEventListener('connection',function(stream){}); /** * 源API:emitter.removeAllListeners(event) * 将指定事件的所有监听器从监听器数组中移除。 */ server.removeAllListeners('connection') /** * 源API:emitter.setMaxListeners(n) * 默认情况下当事件触发器注册了超过10个以上的监听器时系统会打印警告信息,这个默认配置将有助于你查找内存泄露问题。 * 很显然并不是所有的事件触发器都需要进行10个监听器的限制,此函数允许你手动设置该数量值,如果值为0意味值没有限制。 */ server.setMaxListeners(100); /** * 源API:emitter.listeners(event) * 返回指定事件的监听器数组对象,你可以对该数组进行操作,比如说删除监听器等。 */ server.on('connection', function (stream) { console.log('someone connected!'); }); console.log(util.inspect(server.listeners('connection'))); // [ [Function] ] /** * 源API:emitter.emit(event, [arg1], [arg2], [...]) * 以提供的参数作为监听器函数的参数,顺序执行监听器列表中的每个监听器函数。 */ sever.on('connection',function(stream){}) /** * 源API: Event: 'newListener' 事件:'newListener' * 任何时候只要新的监听器被添加时该事件就会触发。 */ server.on('newListener',function(event,listener){});
相关文章推荐
- hadoop开启namenode审计日志
- node.js module 初步理解
- 在eclipse中添加外部nodejs module
- hadoop 启动的时候datanode报错 Problem connecting to server
- 怎样在VPS上使用Recess
- nodejs重定向
- js getAttribute getAttributeNode
- js hasChildNodes()指针对元素节点子节点多个的话 true
- js:获取节点相关的 nodeName,nodeType,nodeValue
- hadoop多次格式化后,导致datanode启动不了,怎么办?(伪分布式)
- NodeJS
- Hadoop的datanode无法启动
- nodejs中console.log输出数组显示[Circular]
- 在ubuntu下安装node.js步骤
- error C2061: 语法错误: 标识符“_Wherenode”
- nodejs 之npm包管理工具详解
- MAC OS 下配置NODEJS 开发环境及调试
- leetcode第一刷_Populating Next Right Pointers in Each Node II
- leetcode第一刷_Populating Next Right Pointers in Each Node
- nodejs 之 superior监督者工具使用