javascript / expert
Snippet
Anfrage-Kontext via AsyncLocalStorage
AsyncLocalStorage bietet eine Möglichkeit, Daten über die gesamte Lebensdauer einer asynchronen Operation (wie einer HTTP-Anfrage) hinweg zu speichern. Es eliminiert 'Prop-Drilling', indem es Funktionen tief im Aufrufstapel ermöglicht, auf kontextspezifische Daten zuzugreifen, ohne dass diese explizit als Argument übergeben werden müssen.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
import { AsyncLocalStorage } from 'node:async_hooks';const als = new AsyncLocalStorage();function logWithId(msg) {const id = als.getStore();console.log(`[Request ${id}] ${msg}`);}als.run('REQ_123', () => {setImmediate(() => logWithId('Finished processing'));});
nodejs
Erklärung
1
als.run('REQ_123', () => { ... });
Startet einen asynchronen Scope, in dem der Wert 'REQ_123' mit allen verschachtelten Aufrufen verknüpft ist.
2
als.getStore();
Ruft den Wert ab, der mit dem aktuellen asynchronen Ausführungskontext verknüpft ist.