语法
1 | function* helloWorldGenerator() { |
第一次调用时不执行
当第一次调用时不执行,只是返回一个函数指针。
只有当调用next()时才执行函数,并遇到第一个yield时停止,返回yield的值。
每次调用next()时,启动原来的暂停,并执行到下一个yield或return
遇到return直接结束。如果没有return,则在执行完yield后,下一个 next()才结束。yield不是必须的
执行时机
需要注意的是,yield 表达式后面的表达式,只有当调用 next 方法、内部指针指向该语句时才会执行,因此等于为 JavaScript 提供了手动的“惰性求值”(Lazy Evaluation)的语法功能。

