1'use strict'; 2require('../common'); 3const assert = require('assert'); 4const { 5 AsyncLocalStorage, 6 executionAsyncResource 7} = require('async_hooks'); 8 9const asyncLocalStorage = new AsyncLocalStorage(); 10 11const outerResource = executionAsyncResource(); 12 13const store = new Map(); 14asyncLocalStorage.run(store, () => { 15 assert.strictEqual(asyncLocalStorage.getStore(), store); 16 const innerResource = executionAsyncResource(); 17 assert.notStrictEqual(innerResource, outerResource); 18 asyncLocalStorage.run(store, () => { 19 assert.strictEqual(asyncLocalStorage.getStore(), store); 20 assert.strictEqual(executionAsyncResource(), innerResource); 21 const otherStore = new Map(); 22 asyncLocalStorage.run(otherStore, () => { 23 assert.strictEqual(asyncLocalStorage.getStore(), otherStore); 24 assert.notStrictEqual(executionAsyncResource(), innerResource); 25 assert.notStrictEqual(executionAsyncResource(), outerResource); 26 }); 27 }); 28}); 29 30assert.strictEqual(executionAsyncResource(), outerResource); 31