Open In App

JavaScript yield* Expression

Last Updated : 24 Jan, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

The yield* expression in JavaScript is used when one wants to delegate some other iterable object. This function iterates over the particular operand and yields each value that is returned by it.

Syntax:

yield* expression;

Return Value: It returns the iterable object.

Example 1: In this example, we will see the basic use of the Javascript yield* expression.

Javascript




<script>
    function* func1() {
      yield "a";
      yield "b";
      yield* func3();
    }
    function* func3() {
      yield "geeks";
    }
    function* func2() {
      yield* func1();
      yield 4/2;
      yield 5/2;
    }
    const it = func2();
    console.log(it.next()); 
    console.log(it.next()); 
    console.log(it.next()); 
    console.log(it.next()); 
    console.log(it.next()); 
    console.log(it.next()); 
</script>


Output:

{value: 'a', done: false}
{value: 'b', done: false}
{value: 'geeks', done: false}
{value: 2, done: false}
{value: 2.5, done: false}
{value: undefined, done: true}

Example 2: Using other iterable objects with yield* in JavaScript.

Javascript




<script>
    function* func1() {
      yield* func3(1, 2, 3, 4);
    }
    function* func3(){
      yield * Array.from(arguments);
    }
    function* func2(){  
      yield* func1();
      yield* ["from array", "from array"];
    }
    const it = func2();
    console.log(it.next()); 
    console.log(it.next()); 
    console.log(it.next()); 
    console.log(it.next()); 
    console.log(it.next()); 
    console.log(it.next()); 
</script>


Output:

{value: 1, done: false}
{value: 2, done: false}
{value: 3, done: false}
{value: 4, done: false}
{value: 'from array', done: false}
{value: 'from array', done: false}

JavaScript is best known for web page development but it is also used in a variety of non-browser environments. You can learn JavaScript from the ground up by following this JavaScript Tutorial and JavaScript Examples.

Supported Browsers: 

  • Chrome 39 and above
  • Edge 12 and above
  • Firefox 27 and above
  • Opera 26 and above
  • Safari 10 and above


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads