Node.js的异步式IO

Node.js最大的特点就是异步式I/O也叫非阻塞式I/O与事件紧密结合的编程模式。这种模式与传统的同步式I/O线性的编程思路有很大的不同,因为控制流跟大程度上要靠事件和回调函数来组织,一个逻辑要拆分成若干个单元。太多的理论小伙伴们也是看看的晕晕的。下面我们就用一个I/O读取文件的实例来感受异步与同步以及回调函数的魅力吧。

一.异步IO

1、新建a.txt文件里面内容为:liuwenwen

2.   新建readFile.js里面内容为:

// 读取文件
var fs = require('fs');
fs.readFile('a.txt','utf-8',function(err,data){
 if(err){
     console.error(err);
    }else{
 console.log(data);
 }
 });
console.log('end');

3.执行 node readFile.js

4.结果为:

end

liuwenwen

二.同步IO

1、新建a.txt文件里面内容为:liuwenwen

2.   新建readFileSync.js里面内容为:

// 读取文件
var fs = require('fs');
var data =fs.readFileSync('a.txt','utf-8');
console.log(data);
console.log('end.');

.执行 node readFileSync.js

4.结果为:

liuwenwen

end.

 

fs.readFile调用时所做的工作只是将异步式I/O请求发送给操作系统,然后立即执行并返回后面的语句。执行完以后进入事件循环监听事件。当fs接受到I/O请求完成时.事件循环会主动调用函数完成后续的工作。因此我们会先看到end再看到文件中的内容。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值