码迷,mamicode.com
首页 > 其他好文 > 详细

async(await)函数和 Generator 函数 区别

时间:2017-04-23 23:17:58      阅读:671      评论:0      收藏:0      [点我收藏+]

标签:字符串   返回   模块   gen   rom   指定   布尔   async   wait   

async 函数是 Generator 函数的语法糖。

async 函数对 Generator 函数的改进体现在:

1. async 内置执行器。

Generator 函数的执行必须靠执行器,需要调用 next() 方法,或者用co 模块;而 async 函数自带执行器。也就是说,async 函数的执行与普通函数一模一样,只要一行。

2. 更好的语义。

async 和 await 比起星号和 yield,语义更清楚。

3.更广的适用性。

co 模块约定,yield 命令后面只能是 Thunk 函数或 Promise 对象,而 async 函数的 await 命令后面可以是 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)。

4. async 返回值是 Promise,可以用 then 方法指定下一步的操作。

比 Generator 函数的返回值是 Iterator 对象方便多了。

async(await)函数和 Generator 函数 区别

标签:字符串   返回   模块   gen   rom   指定   布尔   async   wait   

原文地址:http://www.cnblogs.com/cag2050/p/6754479.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!