Node.js 事件机制解析
Node.js 的事件处理机制
在使用计算机时,打开或关闭文件的操作都被视为一个事件。
例如,以下代码展示了如何在文件打开时触发事件:
var fs = require(‘fs’);
var rs = fs.createReadStream(‘./demofile.txt’);
rs.on(‘open’, function () {
console.log(‘文件已打开’);
});
在 Node.js 中,net.Server 对象会在新连接到来时触发事件,而 fs.ReadStream 则会在文件被打开时触发事件。同时,流对象会在数据可读取时触发相应事件。
createReadStream 方法通常用于处理大型文本文件,创建一个数据流以进行读取操作。这里的“大型文本文件”指的是文件体积超出缓存的大小,因而需要分批读取,每次读取都会触发 data 事件,而读取结束时会触发 end 事件。
Node.js 提供了专门的事件处理模型
首先,需要引入事件模块:
var events = require(‘events’);
var eventEmitter = new events.EventEmitter();
EventEmitter 对象
你可以自定义需要触发的事件,例如:
var events = require(‘events’);
var eventEmitter = new events.EventEmitter();
// 创建事件处理程序:
var myEventHandler = function () {
console.log(‘我听到尖叫声!’);
};
// 将事件处理程序分配给事件:
eventEmitter.on(‘scream’, myEventHandler);
// 触发 ‘scream’ 事件:
eventEmitter.emit(‘scream’);
[[[IMG_1]]]
[[[IMG_2]]]
[[[IMG_3]]]
[[[IMG_4]]]
