目录
异步提供程序
有时,在一个或多个异步任务完成之前,应用程序启动应该被延迟。 例如,你可能不希望在与数据库的连接建立之前开始接受请求。 你可以使用异步提供程序来实现这一点。
这种情况下的语法是在useFactory
语法中使用async/await
。
工厂返回一个Promise
,工厂函数可以等待(await
)异步任务。
Nest将在实例化依赖(注入)这样的提供程序的任何类之前等待Promise
的解析。
{
provide: 'ASYNC_CONNECTION',
useFactory: async () => {
const connection = await createConnection(options);
return connection;
},
}
tip
在这里学习更多自定义提供者语法
注入
与任何其他提供者程序一样,异步提供者程序通过其标记(token)注入到其他组件。
在上面的示例中,您将使用构造函数@Inject('ASYNC_CONNECTION')
。