Generator 函数
在聊async/await
前,必须先聊一下generator
,因为async/await
是generator
的语法糖。
前端人员都知道,generator
有一下几个特点:
- function 关键字与函数名之间有一个星号 "*" 。
- 函数体内使用 yield 表达式,定义不同的内部状态 (可以有多个 yield)。
- 直接调用
Generator
函数并不会执行,也不会返回运行结果,而是返回一个迭代器对象(Iterator Object)。 - 依次调用遍历器对象的
next
方法,遍历Generator
函数内部的每一个状态。 仅仅知道这些我认为还不够,我们先来看一下,声明完这个函数后,这个函数中到底有什么东西:
大约 10 分钟