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
}
*/