• Skip to main content
  • Skip to search
  • Skip to select language
HTML

Structure of content on the web

  • Web APIs

    Interfaces for building web applications

  • Learn
    • CSS

      Learn to style content using CSS

    • Overview

      A customized MDN experience

    • FAQ

      Frequently asked questions about MDN Plus

  • HTTP Observatory

    Scan a website for free

  • JavaScript
  • next()
      • Deutsch
      • Español
      • Français
      • 日本語
      • 한국어
      • Русский
      • 中文 (简体)

    In this article

    • Syntax
    • Examples
    • Specifications
    • Browser compatibility
    • See also
    1. return()
    2. from()
  • Instance methods
    1. find()
    2. reduce()
    3. [Symbol.iterator]()
  • call()
  • displayName Non-standard
  • arguments Non-standard Deprecated
  • caller Non-standard Deprecated
  • Instance methods
    1. __defineGetter__() Deprecated
    2. __defineSetter__() Deprecated
    3. __lookupGetter__() Deprecated
    4. __lookupSetter__() Deprecated
    5. toLocaleString()
    6. __proto__ Deprecated
    7. Generator instances returns an object with two properties done and value. You can also provide a parameter to the next method to send a value to the generator.

  • Syntax

    js
    next()
    next(value)
    

    Parameters

    value Optional

    The value to send to the generator.

    The value will be assigned as a result of a yield expression. For example, in variable = yield expression, the value passed to the .next() function will be assigned to variable.

    Return value

    An Object with two properties:

    done

    A boolean value:

    • true if the generator is past the end of its control flow. In this case value specifies the return value of the generator (which may be undefined).
    • false if the generator is able to produce more values.
    value

    Any JavaScript value yielded or returned by the generator.

    Exceptions

    TypeError

    Thrown if the generator is already running.

    Examples

    Using next()

    The following example shows a generator and the object that the next method returns:

    js
    function* gen() {
      yield 1;
      yield 2;
      yield 3;
    }
    
    const g = gen(); / Generator { }
    g.next(); / { value: 1, done: false }
    g.next(); / { value: 2, done: false }
    g.next(); / { value: 3, done: false }
    g.next(); / { value: undefined, done: true }
    

    Using next() with a list

    In this example, getPage takes a list and "paginates" it into chunks of size pageSize. Each call to next will yield one such chunk.

    js
    function* getPage(list, pageSize = 1) {
      for (let index = 0; index < list.length; index += pageSize) {
        yield list.slice(index, index + pageSize);
      }
    }
    
    const list = [1, 2, 3, 4, 5, 6, 7, 8];
    const page = getPage(list, 3); / Generator { }
    
    page.next(); / { value: [1, 2, 3], done: false }
    page.next(); / { value: [4, 5, 6], done: false }
    page.next(); / { value: [7, 8], done: false }
    page.next(); / { value: undefined, done: true }
    

    Sending values to the generator

    In this example, next is called with a value.

    Note: The first call does not log anything, because the generator was not yielding anything initially.

    js
    function* gen() {
      while (true) {
        const value = yield;
        console.log(value);
      }
    }
    
    const g = gen();
    g.next(1); / Returns { value: undefined, done: false }
    / No log at this step: the first value sent through `next` is lost
    g.next(2); / Returns { value: undefined, done: false }
    / Logs 2
    

    Specifications

    Specification
    ECMAScript® 2026 Language Specification
    # sec-generator.prototype.next

    Browser compatibility

    See also

    • function*
    • Iterators and generators guide

    Help improve MDN

    function*) create iterators that return multiple values, one after another, on-demand.","name":"Generators"}},"browserCompat":["javascript.builtins.Generator.next"],"pageType":"javascript-instance-method"}}

    Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

    Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant