Node.js 事件


Node.js 非常适合事件驱动的应用程序。


Node.js 中的事件

计算机上的每个操作都是一个事件。就像建立连接或打开文件时一样。

Node.js 中的对象可以触发事件,例如 readStream 对象在打开和关闭文件时触发事件:

示例

var fs = require('fs');
var rs = fs.createReadStream('./demofile.txt');
rs.on('open', function () {
  console.log('The file is open');
});
运行示例 »

事件模块

Node.js 有一个名为 "Events" 的内置模块,您可以在其中创建、触发和侦听您自己的事件。

要包含内置事件模块,请使用require()方法。此外,所有事件属性和方法都是 EventEmitter 对象的实例。为了能够访问这些属性和方法,请创建一个 EventEmitter 对象:

var events = require('events');
var eventEmitter = new events.EventEmitter();

EventEmitter 对象

您可以使用 EventEmitter 对象将事件处理程序分配给您自己的事件。

在下面的示例中,我们创建了一个函数,该函数将在触发 "scream" 事件时执行。

要触发事件,请使用emit()方法。

示例

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');
运行示例 »