当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js AsyncLocalStorage.enterWith(store)用法及代码示例


asyncLocalStorage.enterWith(store)

添加于:v13.11.0、v12.17.0
Stability: 1 - 实验性

参数

过渡到当前同步执行的剩余部分的上下文,然后通过任何后续异步调用持久化存储。

例子:

const store = { id: 1 };
// Replaces previous store with the given store object
asyncLocalStorage.enterWith(store);
asyncLocalStorage.getStore(); // Returns the store object
someAsyncOperation(() => {
  asyncLocalStorage.getStore(); // Returns the same object
});

这种转变将持续到整个同步执行。这意味着,例如,如果在事件处理程序中输入上下文,则后续事件处理程序也将在该上下文中运行,除非专门使用 AsyncResource 绑定到另一个上下文。这就是为什么 run() 应该优先于 enterWith() 的原因,除非有充分的理由使用后一种方法。

const store = { id: 1 };

emitter.on('my-event', () => {
  asyncLocalStorage.enterWith(store);
});
emitter.on('my-event', () => {
  asyncLocalStorage.getStore(); // Returns the same object
});

asyncLocalStorage.getStore(); // Returns undefined
emitter.emit('my-event');
asyncLocalStorage.getStore(); // Returns the same object

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 AsyncLocalStorage.enterWith(store)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。