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();
});
});
License
node-async-context (asyncctx) is licensed under the MIT License:
LICENSE
Release Notes
Release | Notes |
---|
2.1.0 | maintenance release |
2.0.18-19 | deprecated in favour of AsyncLocalStorage |
2.0.12-17 | maintenance release, nodejs 14 support |
2.0.11 | #54: fixed memory leak for chaining asynchronous calls infinitely; thanks to Reko Tiira |
2.0.10 | maintenance release |
2.0.9 | node 13 supported |
2.0.3-8 | maintenance release |
2.0.2 | #47: fixed loosing context for unknown resource types; thanks to Pasi Tuominen |
2.0.1 | maintenance release |
2.0.0 | targeting es2015; dropped support for nodejs < v8 |
| please use asyncctx@<2.0 for nodejs v4 - v11 support |
1.1.0 | fixed support for nodes < v8 |
1.0.5-10 | maintenance release |
1.0.4 | node 10 supported |
1.0.3 | node 9 supported |
1.0.2 | maintenance release |
1.0.1 | added support for older nodejs versions (4,6,7) using internal copy of async-hook@1.7.1 |
1.0.0 | is now based on 'async_hooks' (a built-in nodejs v8.0 module) |
0.0.6 | maintenance releases |
0.0.5 | async-hook 1.7.1 |
0.0.1-4 | initial version |