Node学习笔记——NodeJS的事件驱动
2014-04-08 22:31
218 查看
首先来介绍一下NodeJS的事件驱动的概念:
Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。在开发者看来,事件由 EventEmitter 对象提供。前面提到的 fs.readFile 和 http.createServer 的回调函数都是通过 EventEmitter 来实现的。
以上加粗的这段话摘自《NodeJS开发指南》,具体解释看以下代码:
1秒后输出结果:
Node.js 程序由事件循环开始,到事件循环结束,所有的逻辑都是事件的回调函数,所以 Node.js 始终在事件循环中,程序入口就是事件循环第一个事件的回调函数。事件的回调函数在执行的过程中,可能会发出 I/O 请求或直接发射(emit)事件,执行完毕后再返回事件循环,事件循环会检查事件队列中有没有未处理的事件,直到程序结束。
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)事件,执行完毕后再返回事件循环,事件循环会检查事件队列中有没有未处理的事件,直到程序结束。
相关文章推荐
- 跟我学NodeJS(四)事件循环、事件驱动
- Nodejs的单线程、异步IO与事件驱动
- nodejs 事件驱动
- NodeJS中的异步I/O、事件驱动
- Nodejs的事件驱动模式
- NodeJS中的异步I/O、事件驱动
- 【Todo】React & Nodejs学习 &事件驱动,非阻塞IO & JS知识栈:Node为主,JQuery为辅,Bootstrap & React为辅辅,其他如Angular了解用途即可
- nodejs 异步I/O和事件驱动
- node学习(4)-- Nodejs 的非阻塞 I/O、异步、事件驱动
- NodeJs事件驱动
- nodejs笔记之:事件驱动,线程池,非阻塞,异常处理等
- NodeJs--事件驱动(EventEmitter)
- Nodejs-非阻塞I/O&事件驱动
- Nodejs之事件驱动+非阻塞io模型
- 关于”nodejs基于事件驱动”的思考
- nodejs的事件驱动模型
- 事件驱动(案例)
- 应用层与驱动层同步事件处理方法
- [Contiki系列论文之3]Protothread:简化内存受限系统上的事件驱动编程
- 多线程 异步实现(通过事件驱动)