原始的写法回调函数
const fs =require('fs')
fs.readFile('./package.json',(err,data)=>{
if(err) return console.log(err)
data=JSON.parse(data)
console.log(data.name)
})
复制代码
用了promise
const fs =require('fs')
function readFileAsync(path){
return new Promise((resolve,reject)=>{
fs.readFile(path,(err,data)=>{
if(err) reject(err)
else resolve(data)
})
})
}
readFileAsync('./package.json').then(data=>{
data=JSON.parse(data)
console.log(data.name)
}).catch(err=>{
console.log(err)
})
复制代码
使用 util.promisify
const fs =require('fs')
const until =require('util')
until.promisify(fs.readFile)('./package.json').then(data=>{
data=JSON.parse(data)
console.log(data.name)
}).catch(err=>{
console.log(err)
})
复制代码
加上async
const fs = require('fs')
const until = require('util')
const readAsync = until.promisify(fs.readFile)
async function init() {
try {
let data = await readAsync('./package.json')
data = JSON.parse(data)
console.log(data.name)
} catch (error) {
console.log(error)
}
}
init()
复制代码