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