javascript / expert
Snippet
Bidirektionale Zustandsdelegierung über Generator Yield-Star-Ausdrücke
Der yield*-Operator stellt vollständige Zwei-Wege-Kommunikationskanäle zu Sub-Generatoren her, delegiert .next()-Eingaben direkt in den verschachtelten Iterator und erfasst dessen finalen return-Ausdruckswert.
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
Erklärung
1
function* subProcess()
Definiert eine Sub-Generator-Funktion, die externe Eingaben über yield verarbeiten kann.
2
const result = yield* subProcess();
Delegiert den Steuerfluss an subProcess und weist dessen abschließenden Rückgabewert zu.
3
console.log(iterator.next('INPUT_DATA').value);
Übergibt einen Wert durch mainController an subProcess und rückt die Ausführung zum nächsten Yield vor.