javascript / expert
Snippet
Bi-Directional State Delegation via Generator Yield Star Expressions
The yield* operator establishes full two-way communication channels to sub-generators, delegating .next() inputs directly into the nested iterator and capturing its final return expression value.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function* subProcess() {const received = yield 'READY';return `PROCESSED: ${received}`;}function* mainController() {const result = yield* subProcess();yield `FINAL: ${result}`;}const iterator = mainController();console.log(iterator.next().value); // 'READY'console.log(iterator.next('INPUT_DATA').value); // 'FINAL: PROCESSED: INPUT_DATA'
nodejs
Breakdown
1
function* subProcess()
Defines a sub-generator function capable of consuming external inputs via yield.
2
const result = yield* subProcess();
Delegates control flow to subProcess and assigns its eventual return value upon completion.
3
console.log(iterator.next('INPUT_DATA').value);
Passes a value through mainController into subProcess, advancing execution to the next yield.