您现在的位置是:主页 > 技术交流 >

3分钟看懂 JavaScript 生成器

admin 2020-07-16 16:11 【技术交流】 0次人已围观

简介社区中关于 JavaScript 中生成器(generator)类型的讨论很少见,这是因为我们很少碰到实际需要使用它的场景。但这并不能否定这一特性的实用性因为当你真的遇上这类场景时,就会发现生成器真的很好用了。 就像编程领域中的大多数事物一样,生成器类型只是一种工具;具体来说,它是一种专业工具。 我们来看一个实践中生成器的示例,然后一步步分析,看看它是如何工作的: 上面是定义的一个生成器。你会发现它与常规函数非常相似,区别就是它有一个*和一个 yield 关键字。*告诉JavaScript 这是一个生成器...

社区中关于 JavaScript 中生成器(generator)类型的讨论很少见,这是因为我们很少碰到实际需要使用它的场景。但这并不能否定这一特性的实用性——因为当你真的遇上这类场景时,就会发现生成器真的很好用了。

就像编程领域中的大多数事物一样,生成器类型只是一种工具;具体来说,它是一种专业工具。

我们来看一个实践中生成器的示例,然后一步步分析,看看它是如何工作的:

上面是定义的一个生成器。你会发现它与常规函数非常相似,区别就是它有一个*和一个 yield 关键字。*告诉JavaScript 这是一个生成器函数,然后来看 yield。首先,我们看一个生成器运行示例:

这里的 someGenerator 返回了一个 iterator,使我们可以访问 next 方法。每次调用 next 时,函数将运行我们的代码,直到遇到 yield 语句为止。当我们遇到 yield 语句时将暂停执行,直到 next 被再次调用。当 someGenerator 完成执行后,下次我们调用 next 时将收到一个对象,该对象有一个 done 键,其值设置为 true。

孟文鹏博客版权所有丨如未注明 , 均为原创丨 转载请注明3分钟看懂 JavaScript 生成器