这里有新鲜出炉的 Node.JS 入门教程,程序狗速度看过来!
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
本篇文章主要介绍了 nodejs 异步 I/O 和事件循环,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
事件驱动模型
现在我们来看看 nodejs 中的事件驱动和异步 I/O 是如何实现的.
nodejs 是单线程 (single thread) 运行的,通过一个事件循环 (event-loop) 来循环取出消息队列 (event-queue) 中的消息进行处理, 处理过程基本上就是去调用该消息对应的回调函数。消息队列就是当一个事件状态发生变化时,就将一个消息压入队列中。
nodejs 的时间驱动模型一般要注意下面几个点:
下面我们从一个简单的 js 文件入手,来看看 nodejs 是如何执行的。
- var fs = require("fs");
- var debug = require('debug')('example1');
- debug("begin");
- fs.readFile('package.json', 'utf-8',
- function(err, data) {
- if (err) debug(err);
- else debug("get file content");
- });
- setTimeout(function() {
- debug("timeout2");
- });
- debug('end'); // 运行到这里之前,事件循环是暂停的
来源: http://www.phperz.com/article/17/0811/338815.html