[JavaScript] yield与yield*

ES6的yield*可以用来yield其他iterable
例如:数组,字符串,或者arguments对象,generator对象。

function* gen1(){
    yield 3;
    yield 4;
}

function* gen2(){
    yield* [1,2];
    yield* "ab";
    yield* gen1();
}

var g=gen2();
console.log(g.next().value);    //1
console.log(g.next().value);    //2
console.log(g.next().value);    //"a"
console.log(g.next().value);    //"b"
console.log(g.next().value);    //3
console.log(g.next().value);    //4

注:
如果yield*后面不是iterable会报错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 4,585评论 0 0
  • 特别说明,为便于查阅,文章转自https://github.com/getify/You-Dont-Know-JS...
    杀破狼real阅读 3,173评论 0 0
  • 三,字符串扩展 3.1 Unicode表示法 ES6 做出了改进,只要将码点放入大括号,就能正确解读该字符。有了这...
    eastbaby阅读 5,454评论 0 8
  • 简介 基本概念 Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍...
    呼呼哥阅读 4,699评论 0 4
  • 核心观念 打拐APP作为非营利性的公益平台,其思考的逻辑出发点当然是以解决用户的最近本需求为出发点,而非商业模式。...
    龙隐阅读 4,599评论 0 3