Node.js API —— Events(事件)

// 说明

Node API 版本为 v0.10.31。
    中文参考:http://nodeapi.ucdok.com/#/api/http://blog.sina.com.cn/oleoneoy

本段为博主注解。

目录

● 事件
    ○ Class: events.EventEmitter

■ emitter.addListener(event, listener)

■ emitter.on(event, listener)

■ emitter.once(event, listener)

■ emitter.removeListener(event, listener)

■ emitter.removeAllListener([events])

■ emitter.setMaxListener(n)

■ emitter.listeners(event)

■ emitter.emit(event, [arg1], [arg2], [...])

■ Class Method: EventEmitter.listenerCount(emitter, event)

■ Event: ‘new listener‘

■ Event: ‘removeListener‘

事件

稳定性:4 - API 冻结

Node 的很多对象都会发射事件:net.Server 在每次对等连接连接过来时发射一个事件,fs.readStream 在文件打开时发射一个事件。所有发射事件的对象都是 events.eventEmitter 的实例。你可以这样来访问本模块:require("events");
    典型地,事件名用一个驼峰格式字符串代表,然而,那没有任何严格的约束,因为任何的字符串都可被接受。
    然后函数就可以被关联到对象上,当一个事件被发射后函数会被执行。这些函数被称为监听器。在监听器函数里面,this 指向监听器关联的 EventEmitter。

Class: events.EventEmitter

为了访问 EventEmitter 类,require(‘events‘).EventEmitter。
    当一个 EventEmitter 实例遇到一个错误,典型的操作是发射一个 ‘error‘ 事件。 在node 中 Error 事件作为特殊情况对待。如果它没有任何监听器,那么默认的操作是打印堆栈跟踪信息然后退出程序。
    所有的 EventEmitter 都会在新的监听器添加时发射事件 ‘newListener‘,在监听器移除时发射事件 ‘removeListener‘。

emitter.addListener(event, listener)
emitter.on(event, listener)

为特定的事件添加一个监听器到监听器数组的末尾。

1 server.on(‘connection‘, function(stream) {
2   console.log(‘someone connected!‘);
3 });

返回发射器,因而可以链式调用。

emitter.once(event, listener)

为事件添加一个执行一次的监听器。监听器只在下次事件触发的时候调用,之后它会被移除。

1 server.once(‘connection‘, function(streams) {
2   console.log(‘Ah, we have our first user!‘);
3 });

返回发射器,因而可以链式调用。

emitter.removeListener(event, listener)

为指定的事件从监听器数组里移除指定的监听器。警告:这将改变该监听器后面的监听器元素的数组下标。

1 var callback = function(stream) {
2   console.log(‘someone connected!‘);
3 };
4 server.on(‘connection‘, callback);
5 // ...
6 server.removeListener(‘connection‘, callback);

返回发射器,因而可以链式调用。

emitter.removeAllListener([event])

移除所有的监听器,或特定时间的所有监听器。移除在代码其它地方添加的监听器不是一个好主意,特别是当它关联在一个不是你创建的发射器上(例如 socket 或文件流)。
    返回发射器,因而可以链式调用。

emitter.setMaxListeners(n)

默认情况下如果超过10个监听器被添加到特定的事件上, EventEmitter 将打印一个警告。这是一个有用的默认值,可以帮助找到内存泄露。明显地不是所有发射器应该限制为10。本函数允许它增长。若无限制设置为0。

emitter.listeners(event)

返回特定事件的监听器数组。

1 server.on(‘connection‘, function(stream) {
2   console.log(‘someone connected!‘);
3 });
4 console.log(util.inspect(server.listeners(‘connection‘))); // [ [Function] ]

emitter.emit(event, [arg1], [arg2], [...])

使用提供的参数按顺序执行每个监听器。
    如果有监听器返回 true,否则返回 false。

Class Method: EventEmitter.listenerCount(emitter, event)

返回给出事件的监听器数量。

Event: ‘newListener‘

● event 字符串类型 事件名
    ● listener 函数类型 事件处理函数

在每次添加新的监听器时本事件被发射。如果 listener 在 emitter.listeners(event) 返回的列表中,本函数的行为未明确指明。

Event: ‘removeListener‘

● event 字符串类型 事件名
    ● listener 函数类型 事件处理函数

在每次移除监听器时本事件被发射。如果 listener 在 emitter.listeners(event) 返回的列表中,本函数的行为未明确指明。

时间: 2024-11-03 21:52:47

Node.js API —— Events(事件)的相关文章

Node.js入门:事件机制

Evented I/O for V8 JavaScript 基于V8引擎实现的事件驱动IO. 事件机制的实现 Node.js中大部分的模块,都继承自Event模块(http://nodejs.org/docs/latest/api/events.html ).Event模块(events.EventEmitter)是一个简单的事件监听器模式的实现.具有addListener/on,once,removeListener,removeAllListeners,emit等基本的事件监听模式的方法实现

node.js(API解读) - process (http://snoopyxdy.blog.163.com/blog/static/60117440201192841649337/)

node.js(API解读) - process 2011-10-28 17:05:34|  分类: node |  标签:nodejs  nodejsprocess  node.jsprocess  nodjsapi  node.jsapi   |举报 |字号 订阅 下载LOFTER 我的照片书  | nodejs的process是一个全局对象,他提供了一些方法和属性,node.js官方的API说的很简单,并没有把一些详细的应用方法和作用写出来,下面结合我自己的学习,做一下小结吧.1.Even

Node.js API

Node.js v4.4.7 Documentation(官方文档) Buffer Prior to the introduction of TypedArray in ECMAScript 2015 (ES6), the JavaScript language had no mechanism for reading or manipulating streams of binary data(二进制数据). The Buffer class was introduced as part of

Node.js API —— About this Documentation(关于本文档)

// 说明    Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/ 本段为博主注解. 目录 ● 关于本文档    ○ 稳定性指标    ○ JSON 输出 关于本文档 本文档的目的是既能从参考文档角度也能从概念概览角度综合地解释 Node.js API.每个小节描述了一个内建模块或较之上层的核心模块.    如若合适,属性类型.方法参数和事件监听器的参数会详细地在主标题下面列出.    每个 .html 文件都有一个与之

详解Node.js API系列C/C++ Addons(3) 程序实例

http://blog.whattoc.com/2013/09/08/nodejs_api_addon_3/ 再续前文,前文介绍了node.js 的addon用法和google v8 引擎,下面,我们进入真正的编码,下面将会通过六个例子,学习node addon 范例,了解addon编程的特性 创建一个空项目 随机数模块 向模块传递参数 回调函数处理 线程处理 对象管理 创建一个空项目 vi modulename.cpp #include <node.h> void RegisterModul

Node.js API —— process(进程)

// 说明 Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy 本段为博主注解. 目录 ● 进程    ○ Event: 'exit'    ○ Event: 'uncaughtException'    ○ Signal Events    ○ process.stdout    ○ process.stderr ○ process.stdin ○ pro

Node.js自定义对象事件监听与发射

一.Node.js是以事件驱动的,那我们自定义的一些js对象就需要能监听事件以及发射事件.在Node.js中事件使用一个EventEmitter对象发出,该对象在events模块中.它应该是使用观察者设计模式来实现把事件监听器添加到对象以及移除,之前写OC那块的时候也有些观察者设计模式,在OC中也经常用到:通知中心.KVO,也很容易理解. .addListener(eventName,callback):将回调函数附加到对象的监听器中.当eventName的事件被触发时,回调函数被放置在事件队列

Node.js API —— Timers(定时器)

// 说明 Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/ 本段为博主注解. 目录 ● 定时器    ○ setTimeout(callback, delay, [arg], [...])    ○ clearTimeout(timeoutObject)    ○ setInterval(callback, delay, [arg], [...])    ○ clearInterval(intervalObject) 

Node.js API —— Buffer(缓冲区)

// 说明 Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy 本段为博主注解. 目录 ● 缓冲区    ○ Class: Buffer ■ new Buffer(size)       ■ new Buffer(array)       ■ new Buffer(str, [encoding])       ■ Class Method: Buffer.i