• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2require('../common');
3const assert = require('assert');
4const { AsyncLocalStorage } = require('async_hooks');
5
6const asyncLocalStorage = new AsyncLocalStorage();
7const outer = {};
8const inner = {};
9
10function testInner() {
11  assert.strictEqual(asyncLocalStorage.getStore(), outer);
12
13  asyncLocalStorage.run(inner, () => {
14    assert.strictEqual(asyncLocalStorage.getStore(), inner);
15  });
16  assert.strictEqual(asyncLocalStorage.getStore(), outer);
17
18  asyncLocalStorage.exit(() => {
19    assert.strictEqual(asyncLocalStorage.getStore(), undefined);
20  });
21  assert.strictEqual(asyncLocalStorage.getStore(), outer);
22}
23
24asyncLocalStorage.run(outer, testInner);
25assert.strictEqual(asyncLocalStorage.getStore(), undefined);
26