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

首先来介绍一下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学习笔记——NodeJS的事件驱动_第1张图片

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

Node学习笔记——NodeJS的事件驱动_第2张图片

你可能感兴趣的:(IO,对象,异步,nodejs,开发者)