a nodejs call stack context just like java ThreadLocal.
我们在做一些 trace 的时候,需要知道上下文信息,比如一个请求中包含了几次 dubbo 请求的调用,我们需要知道某次 dubbo 的调用在哪个请求的上下文,方便我们的 trace 和排查问题。针对这样的场景我们希望可以做到的隐式的传递参数获取上下文信息
npm install zone-context
//demo import zone from 'zone-context'; it('test zone context', () => { zone.setRootContext('uuid', 1); expect(zone.get('uuid')).toEqual(1); (() => { //async setTimeout(() => { expect(zone.get('uuid')).toEqual(1); }, 20); //async process.nextTick(() => { expect(zone.get('uuid')).toEqual(1); }); //nested new Promise(resolve => { new Promise(r => { setTimeout(() => { expect(zone.get('uuid')).toEqual(1); setImmediate(() => { expect(zone.get('uuid')).toEqual(1); process.nextTick(() => { expect(zone.get('uuid')).toEqual(1); }); }); r(); }, 20); }).then(() => { expect(zone.get('uuid')).toEqual(1); resolve(); }); }); })(); expect(zone.get('uuid')).toEqual(1); });