Nestjs Scope 作用域

  1. 默认为 default,共享类中变量有并发会导致异常修改问题
  1. 如果修改 service 为REQUEST,引用该 service 的地方也会变成REQUEST,作用域向上传递
  1. 修改类作用域为REQUEST,生命周期失效、定时任务触发失效(可以使用 EventEmitter2 进行解耦生命周期和作用域,有些场景下需要配合 redis 锁做 once 一次处理,不然信号可能发送两次)
 

作用域用法

DEFAULT
提供程序的单个实例在整个应用中共享。实例生命周期与应用生命周期直接相关。应用启动后,所有单例提供程序都已实例化。默认情况下使用单例作用域。
REQUEST
专门为每个传入的请求创建一个新的提供程序实例。请求完成处理后,该实例将被垃圾回收。
TRANSIENT
临时提供器不在消费者之间共享。每个注入临时提供器的消费者都将收到一个新的专用实例。
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP