javascript / expert
Snippet
Deterministische Zustandsübergänge über Generator-Iteratoren in der Svelte Context API
Generatoren ermöglichen bidirektionalen Steuerfluss für mehrstufige Svelte-Assistenten, indem Zustandsübergänge sauber pausieren, bis Benutzereingaben zurückgegeben werden.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
export function* createCheckoutStepSequence() {const cartValid = yield 'CART_REVIEW';if (!cartValid) return 'ABORTED';const paymentApproved = yield 'PAYMENT_INPUT';if (!paymentApproved) return 'PAYMENT_FAILED';return 'ORDER_CONFIRMED';}export function executeStep(iterator, stepResult) {const { value, done } = iterator.next(stepResult);return { nextStep: value, isCompleted: done };}
svelte
Erklärung
1
const paymentApproved = yield 'PAYMENT_INPUT';
Pausiert die Generatorausführung bei diesem Schritt und empfängt externe Daten bei Aufruf von iterator.next().
2
export function executeStep(iterator, stepResult) {
Treibt den Generator voran, indem reaktive Komponenteneingaben in den Generator-Steuerfluss eingespeist werden.
3
const { value, done } = iterator.next(stepResult);
Extrahiert den aktuellen Zustandsframe und das Abschluss-Flag aus dem Iterator-Ergebnis.