Generator简介:

  生成器,本身是函数,执行后返回迭代对象,函数内部要配合yield使用Generator函数会分段执行,遇到yield暂停。

使用Generator注意点:function 和函数名之间需要带 *

function* text(){

        }

Generator的yield注意点:yield是ES6新关键字,作用是使Generator(生成器)函数暂停。

        function* text(){
yield 'a';
yield 'b';
yield 'c';
return 'd';
}
let iterationObj = text(); console.log(iterationObj.next());//{value: "a", done: false}
console.log(iterationObj.next());//{value: "b", done: false}
console.log(iterationObj.next());//{value: "c", done: false}
console.log(iterationObj.next());//{value: "d", done: true} yield后,必须return最后一个值,如果不return最后一个值value为undefined。 当每次执行后返回{value, done}value值是当次执行yield里面的值,done值是当次执行看看代码执行到第几行,如果到最后一行返回true,其他返回false

那么我们如何证明当遇到yield函数暂停。

  function* text(){
yield 'a';
console.log('1');
yield 'b';
console.log('2');
yield 'c';
console.log('3');
return 'd'
} let iterationObj = text();
console.log(iterationObj.next());//因为第一行是yield碰到暂停输出:{value: "a", done: false}
console.log(iterationObj.next());//执行第二行输出:1 然后碰到yield暂停输出:{value: "b", done: false}

当yield被变量接收,下一次执行参数就是上一个变量的值。

function* text(){
let value = yield 'a';
console.log(value);
let value1 = yield 'b';
console.log(value1);
let value2 = yield 'c';
console.log(value2);
return 'd'
} let iterationObj = text();
console.log(iterationObj.next());//{value: "a", done: false} 因为第一个是执行yield所以直接暂停不输出第二行的console.log
console.log(iterationObj.next('22'));
那么打印结果就是{value: "a", done: false}
22
{value: "b", done: false}

  

ES6-Generator基础用法的更多相关文章

  1. ES6 generator 基础

    参考文档 harmony:generators Generator是ES6的新特性,通过yield关键字,可以让函数的执行流挂起,那么便为改变执行流程提供了可能. 创建Generator functi ...

  2. es6 generator 基础知识

    1.定义和使用 function *gen() { return 'first generator'; } // 有点类似类的实例化过程 let generatorResult = gen() // ...

  3. asyncio 基础用法

    asyncio 基础用法 python也是在python 3.4中引入了协程的概念.也通过这次整理更加深刻理解这个模块的使用 asyncio 是干什么的? asyncio是Python 3.4版本引入 ...

  4. PropertyGrid控件由浅入深(二):基础用法

    目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...

  5. logstash安装与基础用法

    若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...

  6. elasticsearch安装与基础用法

    来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...

  7. BigDecimal最基础用法

    BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...

  8. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  9. Smarty基础用法

    一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...

  10. 前端自动化测试神器-Katalon的基础用法

    前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...

随机推荐

  1. 使用excel中的数据快速生成sql语句

    在小公司的话,总是会有要开发去导入历史数据(数据从旧系统迁移到新系统上)的时候.这个时候,现场实施或客户会给你一份EXCEL文档,里面包含了一些别的系统上的历史数据,然后就让你导入到现在的系统上面去. ...

  2. Linux : Nginx相关

    nginx安装参考链接: https://www.cnblogs.com/kaid/p/7640723.html 自定义编译目录: https://blog.csdn.net/ainuser/arti ...

  3. Mysql系列(十一)—— 性能分析其他常用监控

    show status show status可以查询显示出当前mysql server的状态信息.该语句不需要任何权限. 对于show status可以时用like子句,模糊检索需要的状态信息.如: ...

  4. 实用 PXE 配置:不断更新中...

    default menu.c32 #--------------------------------todo----------------------# 不过,实用http,nfs.cdrom等方式 ...

  5. Lock+Condition实现机制

    前言:大部分多线程同步场景,在功能和性能层面,synchronized可以满足,少部分场景Lock可以满足,dubbo的源码也符合这个比例,需要使用到Condition的场景极少,整个dubbo源码中 ...

  6. Queue接口分析:add和offer区别,remove和poll方法到底啥区别

    Queue接口: public interface Queue<E> extends Collection<E> { /* * add方法,在不违背队列的容量限制的情况,往队列 ...

  7. JS 弹窗“是否删除”

    var r = confirm("是否确认删除!");if (r == true) {location.href = "/Employees/Delete/" ...

  8. PIE SDK影像快速拼接

    1.算法功能简介 快速拼接是对若干幅互为邻接的遥感数字图像拼在一起,构成一幅整体影像的技术过程.PIE支持快速拼接算法功能的执行,下面对快速拼接算法功能进行介绍. 2.算法功能实现说明 2.1 实现步 ...

  9. 用QT 还是MFC

    转自:用QT 还是MFC ? ----不要在跟自己无关的事情上浪费时间 - CSDN博客  http://blog.csdn.net/sergery/article/details/8038897 我 ...

  10. css实现保持div的等宽高比

    这篇文章主要为回答这个问题:“做响应式网页,如何让一个div的高和宽保持比例放大或是缩小?”,这里不介绍媒体查询的实现. 那么css如何实现高度height随宽度width变化保持比例不变呢?即给定可 ...