Elide proporciona AsyncLocalStorage, AsyncResource, createHook,
executionAsyncId, triggerAsyncId, executionAsyncResource y
asyncWrapProviders.
AsyncLocalStorage admite run, exit, getStore, enterWith, disable,
snapshot y bind. La propagación del contexto es parcial:
el código síncrono y un temporizador creado dentro de run pueden observar el almacén, mientras que
una continuación de Promise no puede.
import { AsyncLocalStorage } from "node:async_hooks";
const storage = new AsyncLocalStorage();
storage.run("request", () => {
console.log(storage.getStore()); // request
Promise.resolve().then(() => {
console.log(storage.getStore()); // undefined
});
});createHook() devuelve un objeto con enable() y disable(), pero Elide
no proporciona el ciclo de vida completo de los recursos asíncronos de Node. Las bibliotecas que
necesitan contexto a través de await no deben depender de esta implementación.
Reference
Status: Partial · 36 of 45 suite tests pass (80.0%) · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
async_hooks | module | Partial | hooks fire for timers/immediates/promises but not yet for TCP/HTTP/TLS native resources |
createHook() | function | Full | Creates a new AsyncHook instance |
executionAsyncId() | function | Full | Returns the asyncId of the current execution context |
triggerAsyncId() | function | Full | Returns the ID of the resource responsible for calling the callback that is currently being executed |
AsyncLocalStorage | property | Full | The AsyncLocalStorage class |
AsyncResource | property | Full | The AsyncResource class |
Tests: node-api node:async-hooks: 36 pass, 8 fail, 1 error, 3 skipped. Failing: test-async-hooks-destroy-on-gc.js, test-async-hooks-enable-recursive.js, test-async-hooks-fatal-error.js, test-async-hooks-http-parser-destroy.js, test-async-hooks-top-level-clearimmediate.js, test-async-local-storage-http-agent.js, test-async-local-storage-http-multiclients.js, test-async-local-storage-http-parser-leak.js, and 1 more.