异步提供者

有时,应用程序的启动需要延迟到一项或多项异步任务完成之后。例如,您可能不希望在与数据库建立连接之前就开始接受请求。您可以使用异步提供者来实现这一点。

实现这一点的语法是使用 async/await 配合 useFactory 语法。工厂返回一个 Promise,工厂函数可以 await 异步任务。Nest 会在实例化任何依赖(注入)此类提供者的类之前,等待 promise 完成解析。

{
  provide: 'ASYNC_CONNECTION',
  useFactory: async () => {
    const connection = await createConnection(options);
    return connection;
  },
}

info 提示 了解更多关于自定义提供者语法 here 的信息。

注入

异步提供者与其他提供者一样,通过其令牌注入到其他组件中。在上面的示例中,您将使用构造 @Inject('ASYNC_CONNECTION')。