nodejsイベント駆動プログラミング例
2434 ワード
nodejsはますます成功すると信じています.
Nodejsを勉強するには、Event-driven、Aynchronous I/O calback.Nodejsサーバーからのプログラムはシングルスレッド方式です.これはblockタイプのI/Oに対して非同期的に処理する必要があります.また、計算集約型のコードに対しても、スレッドプログラミングを行います.ここでは簡単にnodejs Event-drivenの例を書きます.
*blamo event handed BATMAN*book event handed
Nodejsを勉強するには、Event-driven、Aynchronous I/O calback.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.
出力結果:*blamo event handed BATMAN*book event handed