Node.js性能



想象一下,我们得到了 2 个简单的类(省略导出):

class SomeService {
  async func () {
    // some async function logic
    return value;
  }
}
class SomeController {
  constructor (service) {
    this.service = service;
  }
  async func () {
    const value = await this.service.func();
    // some controller-specific logic here
    return value;
  }
}

此外,我们得到了简单的函数,它以两种方式使用这两个类。

案例一:

// require clasess
const somefunc = async () => {
  const controller = new SomeController(new SomeService());
  const value = await controller.func();
  return value;
}
module.exports = somefunc;

案例二:

// require clasess
const controller = new SomeController(new SomeService());
const somefunc = async () => {
  const value = await controller.func();
  return value;
}
module.exports = somefunc;

据我了解,在第一种情况下,节点的require是如何工作的controller每次调用somefunc时都会创建。在第二种情况下,controller仅创建一次,此时将评估文件。什么情况更好,更重要的是我应该阅读或查找什么来理解为什么?

我想答案取决于您的用例。您必须问自己是否需要在每次调用函数时重新创建SomeController。还要考虑的另一件事是SomeController初始化时是否依赖于异步的东西。例如,如果控制器需要访问其构造函数中的数据库连接,则必须等待建立数据库连接。在这种情况下,您可能别无选择,只能在函数中初始化SomeController。正如我所说,在这种情况下没有客观better。这完全取决于您的用例。

最新更新