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

Node学习笔记——NodeJS的事件驱动

2014-04-08 22:31 218 查看
首先来介绍一下NodeJS的事件驱动的概念:

Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。在开发者看来,事件由 EventEmitter 对象提供。前面提到的 fs.readFile 和 http.createServer 的回调函数都是通过 EventEmitter 来实现的。

以上加粗的这段话摘自《NodeJS开发指南》,具体解释看以下代码:

var events = require('events'); //引入事件模塊
var EventEmitter = events.EventEmitter;
var event = new EventEmitter();
event.on('call_event', function() {
	console.log('call_event方法被调用了。。。');
});
setTimeout(function() {
	event.emit('call_event');
}, 1000); //设置1秒后自动执行call-event方法


1秒后输出结果:



Node.js 程序由事件循环开始,到事件循环结束,所有的逻辑都是事件的回调函数,所以 Node.js 始终在事件循环中,程序入口就是事件循环第一个事件的回调函数。事件的回调函数在执行的过程中,可能会发出 I/O 请求或直接发射(emit)事件,执行完毕后再返回事件循环,事件循环会检查事件队列中有没有未处理的事件,直到程序结束。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: