生成器Generators/yield

    Generator函数本意是iterator生成器,函数运行到yield时退出,并保留上下文,在下次进入时可以继续运行。

    生成器函数也是一种函数,语法上仅比普通function多了个星号 ,即function ,在其函数体内部可以使用yield和yield* 关键字。

    简单理解,这是ES6的新特性,function 后面带 * 的叫做Generator,如以下代码所示。

    说明

    • 第一个next,会打印出1,之后悬停在 yield所在行,即Line (A)

    第1个结果

    第2个gen1.next()结果

    如果generator里有多个yield呢?

    那么会有无穷无尽的next。

    于是tj就写co这个著名的Generator执行器,co目前已经是v4了,彻底的面向Promise了,个中曲折也是够八卦的了。