Generator笔记

语法

1
2
3
4
5
6
7
function* helloWorldGenerator() {
yield "hello";
yield "world";
return "ending";
}

var hw = helloWorldGenerator();

第一次调用时不执行

当第一次调用时不执行,只是返回一个函数指针。
只有当调用next()时才执行函数,并遇到第一个yield时停止,返回yield的值。
每次调用next()时,启动原来的暂停,并执行到下一个yieldreturn
遇到return直接结束。如果没有return,则在执行完yield后,下一个 next()才结束
yield不是必须的

执行时机

需要注意的是,yield 表达式后面的表达式,只有当调用 next 方法、内部指针指向该语句时才会执行,因此等于为 JavaScript 提供了手动的“惰性求值”(Lazy Evaluation)的语法功能。

文章作者: wenmu
文章链接: http://blog.wangpengpeng.site/2020/02/28/Generator%E7%AC%94%E8%AE%B0/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 温木的博客
微信打赏