先总结:异步读取文件时是有操作系统在后台进行读取,非阻塞下面的代码执行;同步读取时会阻塞下面的代码执行
适用场景:
同步:一般在共享某一资源的时候用,如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错,同步就会按顺序来修改。打电话
异步:提高效率,比如CPU都是双核,四核,异步处理可以提高工作效率。比如发短信
异步代码案例
var fs = require('fs'); //获取fs模块
console.log('start async read'); //异步读取开始
fs.readFile('test2.js',function(error,date){ //读取文件,回调函数第一个参数表示错误信息,第二个参数为读取的文本内容
if(error){
console.log(error);
}else{
console.log('end async read'); //异步读取结束
}
});
console.log('start sync read'); //同步读取开始
var date = fs.readFileSync('log.txt','utf-8');
console.log('end sync read'); //同步读取结束
同步代码案例:
var fs = require('fs'); //获取fs模块
console.log('start sync read'); //同步读取开始
var date = fs.readFileSync('log.txt','utf-8');
console.log('end sync read'); //同步读取结束
console.log('start async read'); //异步读取开始
fs.readFile('test2.js',function(error,date){ //读取文件,回调函数第一个参数表示错误信息,第二个参数为读取的文本内容
if(error){
console.log(error);
}else{
console.log('end async read'); //异步读取结束
}
});