nodejs 事件驱动编程例子

相信nodejs会越来越成功

在学习Nodejs强大有两处: Event-driven, Asynchronous I/O callback.Nodejs服务器发的 程序是单线程方式,这就要求其对于block 类型的I/O要异步处理,而对于计算密集型的代码,也要进行对线程编程,这里简单的写个nodejs Event-driven的小例子.



var events = require('events');
var util = require('util');

// The Thing That Emits Event
Eventer = function(){

events.EventEmitter.call(this);

this.kapow = function(){
var data = "BATMAN";
this.emit('blamo', data);
},

this.bam = function(){
this.emit("boom");
};
};

util.inherits(Eventer, events.EventEmitter);
// The thing that listens to, and handles, those events

Listener = function(){
this.blamoHandler = function(data){
console.log("** blamo event handled");
console.log(data);
},
this.boomHandler = function(data){
console.log("** boom event handled");
};

};

// The thing that drives the two.
var eventer = new Eventer();
var listener = new Listener(eventer);
eventer.on('blamo', listener.blamoHandler);
eventer.on('boom', listener.boomHandler);

eventer.kapow();
eventer.bam();

/*function add(a, b)
{
console.log('a + b: ' + (a + b) );
}

function sub(a, b)
{
console.log('a - b' + (a - b));
}

add.call(sub, 3, 1);
*/

//result: 4

/*function Class1()
{
this.name = "class1";

this.showNam = function()
{
console.log(this.name);
};
}

function Class2()
{
this.name = "class2";
}

var c1 = new Class1();
var c2 = new Class2();

c1.showNam.call(c2); */

//result: class2

/*function Class1()
{
this.showTxt = function(txt)
{
console.log(txt);
};
}

function Class2()
{
Class1.call(this);
}

var c2 = new Class2();

c2.showTxt("cc");*/

//result: cc.





输出结果:
[color=blue]
** blamo event handled
BATMAN
** boom event handled

[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值