node.js异步文件操作

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也是在另一个线程中完成的。

转载于:https://www.cnblogs.com/zhongxg/archive/2013/06/03/3115009.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值