【问题标题】:The inRequestScope is not working as expectedinRequestScope 未按预期工作
【发布时间】:2019-02-10 22:39:40
【问题描述】:

帮助使用 inRequestScope inversifyJS 例如:

container.bind<ITransactionManager>(Types.MysqlTransactionManager).to(MysqlTransactionManager).inRequestScope()

...
container.get<ITransactionManager>(Types.MysqlTransactionManager)//call the MysqlTransactionManager constructor and return the instance

container.get<ITransactionManager>(Types.MysqlTransactionManager) //call the constructor one more time and return a new instance

我希望在第二次调用 get 时返回相同的实例,而不是再次实例化它

【问题讨论】:

    标签: javascript typescript express inversifyjs


    【解决方案1】:

    您需要将两个.get 调用包装在一个类中,然后然后使用.get.resolve 解析该类

    文档摘录

    对其中一个方法的每次调用都将解析根依赖项及其所有子依赖项。在内部,InversifyJS 创建了一个称为“解决方案”的依赖图。 inRequestScope 范围将对在解析计划中多次出现的对象使用一个实例。这减少了所需分辨率的数量,并且在某些情况下可以用作性能优化。

    https://github.com/inversify/InversifyJS/blob/master/wiki/scope.md

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 2022-01-24
      • 2015-05-11
      • 2020-05-15
      • 2014-10-31
      • 2018-02-12
      • 2014-01-20
      • 2015-01-13
      • 2013-08-01
      相关资源
      最近更新 更多