您的位置:首页 > Web前端 > Node.js

Node.js的事件处理

2013-06-03 09:03 453 查看
  从windows系统诞生以来,事件驱动成为最普遍的现象。Node.js也是事件驱动的,这看起来是理所当然的事。但Node.js的事件处理在软件架构里提到了一个更高的高度:基于事件驱动的软件架构。

  nodejs事件的核心是EventEmitter。很多nodejs对象继承自EventEmitter,用来处理事件,及回调。

var util = require("util");
var events = require("events");//EventEmitter通过events模块来访问

function MyStream() {//新建一个类
events.EventEmitter.call(this);
}

util.inherits(MyStream, events.EventEmitter);//使这个类继承EventEmitter

MyStream.prototype.write = function(data) {//定义一个新方法
this.emit("data", data);//在此触发名为"data"事件
}

var stream = new MyStream();

stream.on("data", function(data) {//注册监听器,监听名为"data"事件
console.log('Received data: "' + data + '"');
})
stream.write("It works!"); // Received data: "It works!"


以上的例子说明了EventEmitter的用法。从原理来说,和c#的event实现方法一样的,但使用上有一点不一样:c#的event是通过为类创建一个event属性,燃后对event属性进行事件绑定实现事件驱动,但nodejs是继承EventEmitter实现事件驱动
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: