• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2require('../common');
3const assert = require('assert');
4const { AsyncLocalStorage } = require('async_hooks');
5
6async function main() {
7  const asyncLocalStorage = new AsyncLocalStorage();
8  const err = new Error();
9  const next = () => Promise.resolve()
10    .then(() => {
11      assert.strictEqual(asyncLocalStorage.getStore().get('a'), 1);
12      throw err;
13    });
14  await new Promise((resolve, reject) => {
15    asyncLocalStorage.run(new Map(), () => {
16      const store = asyncLocalStorage.getStore();
17      store.set('a', 1);
18      next().then(resolve, reject);
19    });
20  })
21    .catch((e) => {
22      assert.strictEqual(asyncLocalStorage.getStore(), undefined);
23      assert.strictEqual(e, err);
24    });
25  assert.strictEqual(asyncLocalStorage.getStore(), undefined);
26}
27
28main();
29