第一部分,ES7 中引入 async-await
前面介绍完了Generator的异步处理,可以说是跌跌撞撞,经过各种基础介绍和封装,好容易出了一个比较简洁的异步处理方案,学习成本非常高————这显然不是我们想要的!
因此,还未发布的 ES7 就干脆自己参照Generator封装了一套异步处理方案————async-await。说是参照,其实可以理解为是Generator的语法糖!
本节示例代码参照这里
本节内容概述
Generator和async-await的对比
使用async-await的不同和好处
接下来...
Generator和async-await的对比
先来一段Generator处理异步的代码,前面已经介绍过了,看不明白的再获取接着看。
co(function*() {
const r1= yield readFilePromise('some1.json')
console.log(r1)//打印第 1 个文件内容
const r2 = yield readFilePromise('some2.json')
console.log(r2)//打印第 2 个文件内容
})
再来一段async-await的执行代码如下,两者做一个比较。
const readFilePromise =Q.denodeify(fs.readFile)//定义 async 函数
const readFileAsync = async function() {
const f1= await readFi