MDN may have intermittent access issues April 18 13:00 - April 19 01:00 UTC. See whistlepig.mozilla.org for all notifications.

mozilla
您的搜索结果

    yield

    概述

    yield 关键字用来暂停和继续一个生成器函数 (function* or legacy generator).

    语法

     yield [[expression]];
    expression
    用作返回值.  如果忽略, 将返回 undefined .

    描述

    yield 关键字使生成器函数暂停执行,并返回跟在它后面的表达式的当前值. 可以把它想成是 return 关键字的一个基于生成器的版本.

    yield 关键字实际返回一个对象,包含两个属性, value 和 done.  value 属性为 yield expression 的值,  done 是一个布尔值用来指示生成器函数是否已经全部完成.

    一旦在 yield expression 处暂停,  除非外部调用生成器的 next() 方法,否则生成器的代码将不能继续执行. 这使得可以对生成器的执行以及渐进式的返回值进行直接控制.

    示例

    以下代码是一个生成器函数的声明, along with a helper function.

    function* foo(){
      var index = 0;
      while (index <= 2) // when index reaches 3, 
                         // yield's done will be true 
                         // and its value will be undefined;
        yield index++;
    }

    一旦生成器函数已定义,可以通过构造一个迭代器来使用它.

    var iterator = foo();
    console.log(iterator.next()); // { value:0, done:false }
    console.log(iterator.next()); // { value:1, done:false }
    console.log(iterator.next()); // { value:2, done:false }
    console.log(iterator.next()); // { value:undefined, done:true }
    

    规范

    Specification Status Comment
    ECMAScript 6 (ECMA-262)
    Yield
    Draft Initial definition.

    浏览器兼容性

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
    Basic support 39 26.0 (26.0) ? ? ?
    Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Basic support yes (when?) 26.0 (26.0) ? ? ?

    相关链接

    文档标签和贡献者

    此页面的贡献者有: mountainmoon, AlexChao, lpy, teoli
    最后编辑者: AlexChao,
    隐藏侧边栏