node-async-context (asyncctx)
This module allows you to create an asynchronous execution context for JavaScript or TypeScript
NOTE: This module is based on async_hooks an experimental built-in node.js module introduced in v8.0.0
Deprecation
NOTE: This module is now deprecated in favour of AsyncLocalStorage
which is available for nodejs >= 12
quick start using AsyncLocalStorage
class ContinuationLocalStorage<T> extends AsyncLocalStorage<T> {
public getContext(): T | undefined {
return this.getStore();
}
public setContext(value: T): T {
this.enterWith(value);
return value;
}
}
Introduction
To give you an idea of how asyncctx is supposed to be used:
import { ContinuationLocalStorage } from 'asyncctx';
class MyLocalStorage {
value: number;
}
let cls = new ContinuationLocalStorage<MyLocalStorage>();
cls.setRootContext({ value: 1});
process.nextTick(() => {
let curr1 = cls.getContext();
cls.setContext({ value: 2});
process.nextTick(() => {
let curr2 = cls.getContext();
cls.setContext({ value: 3});
process.nextTick(() => {
let curr3 = cls.getContext();
});
});
process.nextTick(() => {
let curr4 = cls.getContext();
});
});
RELEASE NOTES
CHANGELOG
License
node-async-context (asyncctx) is licensed under the MIT License:
LICENSE