扫码一下
查看教程更方便
有时,应延迟应用程序启动,直到完成一个或多个异步任务。 例如,我们可能不想在与数据库的连接建立之前开始接受请求。 我们可以使用异步 provider 来实现这一点。
其语法是使用 async/await
和 useFactory
语法。 工厂返回一个 Promise,工厂函数可以等待异步任务。 Nest 将在实例化任何依赖(注入)此类提供程序的类之前等待 Promise 的完成。
{
provide: 'ASYNC_CONNECTION',
useFactory: async () => {
const connection = await createConnection(options);
return connection;
},
}
异步 Provider 通过其令牌注入其他组件,就像任何其他提供者一样。 在上面的示例中,我们将使用构造 @Inject('ASYNC_CONNECTION')
。