源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ES6生成器用法实例分析

  • 时间:2020-03-20 03:11 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ES6生成器用法实例分析
本文实例讲述了ES6生成器用法。分享给大家供大家参考,具体如下: [b]语法[/b] 何为生成器?让我们先看看以下代码:
function* quips(name) {
 yield "hello " + name + "!";
 yield "i hope you are enjoying the blog posts";
 if (name.startsWith("X")) {
  yield "it's cool how your name starts with X, " + name;
 }
 yield "see you later!";
}

你没有看错,这就是JavaScript代码。是不是和你曾经认识的javascript不太一样。这个函数就叫做生成器函数。生成器函数看起来和普通的函数是不是有点相像呢? [b]它们的区别如下:[/b] 一般的函数以function开头,而[b]生成器函数以function* 开头[/b][b]生成器函数中有一个特殊关键字就是yield,作用就是暂停函数。配合next方法来调用可以达到一步一步的执行函数的目的[/b]。 我们看看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: true }

可以看到,每一次next方法后,生成器函数就执行到下一个yield位置处。 基本的生成器语法就讲完了。 [b]应用[/b] 生成器可以用来异步编程,我在之前的文章中有过介绍,可以参考前面一篇《[url=http://www.1sucai.cn/article/110721.htm]基于javascript的异步编程实例详解[/url]》 但是需要注意的是,生成器并不是用来写异步的,这仅仅是一种hack手段而已。 希望本文所述对大家ECMAScript程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部