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