Saltar al contenido

Referencia de la API node:async_hooks

Compatibilidad parcial con AsyncLocalStorage y AsyncResource

En esta página
Open in ChatGPTOpen in Claude

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

ExportKindStatusNotes
async_hooksmodulePartialhooks fire for timers/immediates/promises but not yet for TCP/HTTP/TLS native resources
createHook()functionFullCreates a new AsyncHook instance
executionAsyncId()functionFullReturns the asyncId of the current execution context
triggerAsyncId()functionFullReturns the ID of the resource responsible for calling the callback that is currently being executed
AsyncLocalStoragepropertyFullThe AsyncLocalStorage class
AsyncResourcepropertyFullThe 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.

¿Te resultó útil esta página?