跳到主要内容
目录

异步提供程序

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

这种情况下的语法是在useFactory 语法中使用async/await。 工厂返回一个Promise,工厂函数可以等待(await)异步任务。 Nest将在实例化依赖(注入)这样的提供程序的任何类之前等待Promise的解析。

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

在这里学习更多自定义提供者语法

注入

与任何其他提供者程序一样,异步提供者程序通过其标记(token)注入到其他组件。 在上面的示例中,您将使用构造函数@Inject('ASYNC_CONNECTION')