小编给大家分享一下发生器函数与异步函数的区别是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
<强>发电机函数:强>
发电机函数是ES2015提供的异步解决方案,与普通函数有很大的不同,
特征:
1时,在函数关键字后面跟一个(*)号;
2,在函数体内部使用产量表达式作为一个状态;
发电机函数返回一个遍历器,可通过对……的方法遍历每个状态;
用法:
执行发电机并不立刻执行,返回一个遍历器,遍历器通过调用next(),把()或者返回()执行下一个状态,捕获错误或者结束遍历器;
<强>异步函数:强>
异步函数是ES2017提供的异步函数语法,是发电机的语法糖,但是用法上与发电机函数还是有很大不同,
特征:
1时,在函数关键字前面跟一个异步关键字;
2,在函数体内部使用等待表达式;
异步函数返回一个承诺对象,
用法:
执行异步函数会立刻执行,和普通函数一样,但是返回一个承诺对象,
<强>两者对比:强>
1,发电机出现在ES2015中,异步出现在ES2017中,异步是发电机的语法糖;
2,执行方式不同,发电机执行需要使用执行器(next()等方法);异步函数自带执行器,与普通函数的执行一样,
3,异步的语法语义更加清楚,异步表示异步,等待表示等待,而发电机函数的(*)号和收益率的语义就没那么直接了;
4,发生器中产生后的面只能跟铛函数或承诺对象,而异步函数中等待后面可以是承诺对象或者原始类型的值(会自动转为立即解答的承诺对象),
5,返回值不同,发电机返回遍历器,相比于异步返回承诺对象操作更加麻烦。
以上是发电机函数与异步函数的区别是什么的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!