Nodejs有一个非常完美的事件处理过程
每次我们用计算机打开或者关闭一个文件都是一个事件
[php]
var fs = require(‘fs’);
var rs =
fs.createReadStream(‘./demofile.txt’);
rs.on(‘open’, function () {
console.log(‘The file is open’);
});
[/php]
例如,net.Server
对象会在每次有新连接时触发事件;fs.ReadStream
会在文件被打开时触发事件;流对象 会在数据可读时触发事件
createReadStream
方法往往用于打开大型的文本文件,创建一个读取操作的数据流。所谓大型文本文件,指的是文本文件的体积很大,读取操作的缓存装不下,只能分成几次发送,每次发送会触发一个data
事件,发送结束会触发end
事件。
Nodejs有专门的模型来进行事件处理
先引用事件模块
[php]
var events = require(‘events’);
var eventEmitter = new events.EventEmitter();
[/php]
EventEmitter Object
可以自己设定要触发的事件,比如
[php]
var events = require(‘events’);
var eventEmitter = new events.EventEmitter();
//Create an event handler:
var myEventHandler = function () {
console.log(‘I hear a scream!’);
}
//Assign the event handler to an event:
eventEmitter.on(‘scream’, myEventHandler);
//Fire the ‘scream’ event:
eventEmitter.emit(‘scream’);
[/php]