How to use yield* expression in function* with return value in JavaScript

1 Answer

0 votes
function* f1() {
  yield* [1, 2, 3, 4];
  return 'abc';
}

function* f2() {
  const f1ReturnValue = yield* f1();
  console.log(f1ReturnValue) // 'abc'
  return f1ReturnValue;
}

const iterator = f2();

console.log(iterator.next()); 
console.log(iterator.next()); 
console.log(iterator.next()); 
console.log(iterator.next()); 
console.log(iterator.next()); 
console.log(iterator.next()); 
 


    
    
/*
run:
    
{
  done: false,
  value: 1
}
{
  done: false,
  value: 2
}
{
  done: false,
  value: 3
}
{
  done: false,
  value: 4
}
"abc"
{
  done: true,
  value: "abc"
}
{
  done: true,
  value: undefined
}
    
*/

 



answered Nov 21, 2020 by avibootz
...