# 异步IO

js是单线程执行的,当执行到一些文件读取 网络IO操作(如果在主线程上执行非常缓慢),js使用的是异步IO的方式即 事件循环机制。

# readFile读文件方式

//readFileSync同步读文件
const fs = require('fs');
console.log(fs.readFileSync('./myFile.js').toString())



//readFile异步读取文件
fs.readFile('./myFile.js',function(error,data){
    if(error) throw error;
    console.log(data);
})


//该方法主要通过promiseify函数包裹,让普通的异步方法返回一个promise对象
const fs = require('fs');
const { promisify } = require('util')
const readFile = promisify(fs.readFile)
//async函数包裹
process.nextTick(async ()=>{
    const data = await readFile('./myFile.js')
    console.log(data.toString());
})