ES6生成器用法实例分析

网友投稿 246 2023-05-24


ES6生成器用法实例分析

本文实例讲述了ES6生成器用法。分享给大家供大家参考,具体如下:

语法

何为生成器?让我们先看看以下代码:

function* quips(name) {

yield "hello " + name + "!";

yield "i hope you are enjoying the blog posts";

if (nhttp://ame.startsWith("X")) {

yield "it's cool how your name starts with X, " + name;

}

yield "sehttp://e you later!";

}

你没有看错,这就是javascript代码。是不是和你曾经认识的javascript不太一样。这个函数就叫做生成器函数。生成器函数看起来和普通的函数是不是有点相像呢?

它们的区别如下:

一般的函数以function开头,而生成器函数以function* 开头。

生成器函数中有一个特殊关键字就是yield,作用就是暂停函数。配合next方法来调用可以达到一步一步的执行函数的目的。

我们看看next方法的使用:

> var iter = quips("lf");

[object Generator]

> iter.next()

{ value: "hello lf!", done: false }

> iter.next()

{ value: "i hope you are enjoying the blog posts", done: false }

> iter.next()

{ value: "see you later!", done: false }

> iter.next()

{ value: undefined, done: truehttp:// }

可以看到,每一次next方法后,生成器函数就执行到下一个yield位置处。

基本的生成器语法就讲完了。

应用

生成器可以用来异步编程,我在之前的文章中有过介绍,可以参考前面一篇《基于javascript的异步编程实例详解》

但是需要注意的是,生成器并不是用来写异步的,这仅仅是一种hack手段而已。

希望本文所述对大家ECMAScript程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java实现二叉树的创建及5种遍历方法(总结)
下一篇:java 中InputStream,String,File之间的相互转化对比
相关文章

 发表评论

暂时没有评论,来抢沙发吧~