Thema: async
-
Rust Pin: die Adresse des Zielobjekts bewahren, ohne die Zeigervariable einzufrieren
Diagnostiziert Pinning-Fehler, indem der adresssensitive Wert und die Operation identifiziert werden, die ihn verschieben könnte.
-
Asynchrone Werkzeug-Handles bis zu einem endgültigen Ergebnis verfolgen
Verhindern, dass ein Agent Erfolg meldet, wenn ein Werkzeug Arbeit lediglich angenommen oder ein Handle für eine noch laufende Operation zurückgegeben hat.
-
Fehlerbehandlung bei Promises und async/await
Eine async-Funktion verwandelt ein throw in eine Ablehnung (rejection), und await wirft sie erneut; jede Ablehnung braucht einen Verantwortlichen. Nur das abfangen, wovon man sich erholen kann, nie ein Promise unbehandelt schweben lassen, allSettled verwenden, wenn Teilausfälle akzeptabel sind, und als letzte Instanz einen unhandledrejection-Handler registrieren.
-
Die JavaScript-Ereignisschleife: Tasks, Microtasks und Rendering
JavaScript führt jeweils einen Job aus; die HTML-Ereignisschleife nimmt einen Task und leert dann die gesamte Microtask-Warteschlange (Promise-Reaktionen, queueMicrotask), bevor der nächste Task oder eine Rendering-Gelegenheit an die Reihe kommt. Lange synchrone Arbeit und endlose Microtask-Ketten blockieren Eingaben und das Zeichnen.
-
ContextVar-Wiederherstellung: mit dem Token zurücksetzen, statt den vorherigen Wert zu erraten
Verschachtelten Anfragekontext bewahren, indem genau der Zustand wiederhergestellt wird, der vor einer vorübergehenden Überschreibung bestand.
Maschinenlesbar: JSON