async函数,是Generator语法糖,通过babel编译后可以看出他就是Generator+co+Promise思想实现的。配合await使用
目的:优雅的解决异步问题
const fs = require('fs')
function readFile(url) {
return new Promise((resolve, reject) => {
fs.readFile(url, 'utf-8', (err, data) => {
if (err) {
reject(err)
} else {
resolve(data)
}
})
})
}
// 执行这个函数返回的是Promise实例
// 这个比Gerator方式更加精简,减少了Co函数的封装
async function read(url) {
let val1 = await readFile(url)
let val2 = await readFile(val1)
return val2
}
read('./name.txt').then(res => {
console.log(res)
}).catch(err => {
console.log('err:', err)
})