JavaScript异步编程---Generator异步方案、Async / Await语法糖

Generator异步解决方案

借助于yield能够暂停生成器函数执行的特点,借助于生成器函数实现一个更优的异步编程体验。
JavaScript异步编程---Generator异步方案、Async / Await语法糖_第1张图片
除此之外,还需要判断每个next方法返回值中的done属性来判断是否还有下个next。所以在此我们逸刻使用递归方式实现:
JavaScript异步编程---Generator异步方案、Async / Await语法糖_第2张图片

Async / Await语法糖

在ES2017中新增了该语法糖,提供了扁平化的异步编程体验,并且是语言层面标准的语法,使用起来更加的方便。Async 其实就是生成器函数的更方便的语法糖,所以使用方式上有些类似。
JavaScript异步编程---Generator异步方案、Async / Await语法糖_第3张图片
该语法糖的好处是,不用再通过一个类似于handresulr这样的一个执行器,因为是语言层面的标准语法,其次async可以返回一个promise对象,这让我们可以对整体的代码进行控制。

你可能感兴趣的:(JavaScript异步编程)