Node.js 所有的异步I/O操作在完成时都会发送一个事件到事件队列。在开发者看来,事件由EventEmitter对象提供。前面提到的fs.readFile和http.createServer的回调函数都是通过EventEmitter来实现的。
写个例子:
//event.js var EventEmitter = require('events').EventEmitter; var event = new EventEmitter(); event.on('some_event',function(){ console.log('This is some_event'); }); setTimeout(function(){ event.emit('some_event'); },1000);
运行代码,1秒后控制台输出了This is some_evnet。其原理是event对象注册了事件some_evnet的一个监听器,然后我们通过setTimeout在1000毫秒以后向event对象发送事件some_event,此时会调用some_event的监听器。