跳转至

异步服务提供器

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

这个语法是和useFactory语法使用async/await。 工厂返回一个Promise,并且工厂函数可以await异步任务。 Nest 将在实例化依赖于(注入)这样一个提供器的任何类之前等待承诺的解析。

1
2
3
4
5
6
7
{
  provide: 'ASYNC_CONNECTION',
  useFactory: async () => {
    const connection = await createConnection(options);
    return connection;
  },
}

了解有关自定义提供程序语法的更多信息此处.

注入

异步提供程序通过它们的令牌注入到其他组件,就像任何其他提供程序一样。 在上面的例子中,你将使用@Inject('ASYNC_CONNECTION')结构。

例子

TypeORM 食谱有一个更重要的异步提供程序示例。