发电机函数与异步函数的区别是什么

介绍

小编给大家分享一下发生器函数与异步函数的区别是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>发电机函数:

发电机函数是ES2015提供的异步解决方案,与普通函数有很大的不同,

特征:

1时,在函数关键字后面跟一个(*)号;

2,在函数体内部使用产量表达式作为一个状态;

发电机函数返回一个遍历器,可通过对……的方法遍历每个状态;

用法:

执行发电机并不立刻执行,返回一个遍历器,遍历器通过调用next(),把()或者返回()执行下一个状态,捕获错误或者结束遍历器;

<强>异步函数:

异步函数是ES2017提供的异步函数语法,是发电机的语法糖,但是用法上与发电机函数还是有很大不同,

特征:

1时,在函数关键字前面跟一个异步关键字;

2,在函数体内部使用等待表达式;

异步函数返回一个承诺对象,

用法:

执行异步函数会立刻执行,和普通函数一样,但是返回一个承诺对象,

<强>两者对比:

1,发电机出现在ES2015中,异步出现在ES2017中,异步是发电机的语法糖;

2,执行方式不同,发电机执行需要使用执行器(next()等方法);异步函数自带执行器,与普通函数的执行一样,

3,异步的语法语义更加清楚,异步表示异步,等待表示等待,而发电机函数的(*)号和收益率的语义就没那么直接了;

4,发生器中产生后的面只能跟铛函数或承诺对象,而异步函数中等待后面可以是承诺对象或者原始类型的值(会自动转为立即解答的承诺对象),

5,返回值不同,发电机返回遍历器,相比于异步返回承诺对象操作更加麻烦。

以上是发电机函数与异步函数的区别是什么的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

发电机函数与异步函数的区别是什么