Check out Firefox Developer Edition, the first browser built for developers like you. http://mzl.la/112VrtT

mozilla
Your Search Results

    yield

    Summary

    The yield keyword is used to pause and resume a generator function (function* or legacy generator).

    Syntax

     yield [[expression]];
    expression
    The expression to return. If omitted, undefined is returned instead.

    Description

    The yield keyword causes generator function execution to pause and return the current value of the expression following the yield keyword. It can be thought of as a generator-based version of the return keyword.

    The yield keyword actually returns an object with two parameters, value and done. value is the result of evaluating the yield expression, and done is a Bool indicating whether or not the generator function has fully completed.

    Once paused on a yield expression, code execution for the generator cannot resume unless invoked externally by calling the generator's next() method. This allows for direct control of the generator's execution and incremental return values.

    Examples

    The following code is the declaration of an example generator function, along with a helper function.

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

    Once a generator function is defined, it can be used by constructing an iterator as shown.

    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 }

    Examples needed here.

    Specifications

    Specification Status Comment
    ECMAScript 6 (ECMA-262)
    The definition of 'Yield' in that specification.
    Draft Initial definition.

    Browser compatibility

    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) ? ? ?

    See also

    Document Tags and Contributors

    Last updated by: arai,
    Hide Sidebar