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

node.js异步文件操作

2013-06-03 11:23 561 查看
nodejs的核心之一就是非阻塞的异步IO,文件读写操作时代码如下:

var fs = require('fs');
fs.readFile('file.txt', 'utf-8', functino(err,data){
if (err) {
console.error(err);
} else {
console.log(data);
}
});
console.log('end.');


  现在的问题是:这种异步是怎么实现的呢?我们知道读文件过程:Open-》Read-》Close,读文件必须按这个顺序执行,与node.js异布执行的机制是不同的。一种可能的方式是全部使用回调函数,在Open的回调中执行Read,在Read的回调中执行Close,但这样的方法显然不利于代码维护,逻辑上也混乱。另一种方法是使用事件通知机制。
  如果node.js是完全单线程的,不管怎么说,Read时如果文件比较大,必然操作时间比较长,node.js就必须分多次执行,这样的结果是效率的降低,而不是提高。所以,事实上,读文件这种操作node.js也是在另一个线程中完成的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: