此语法是将async/await
与useFactory
语法结合使用。工厂返回一个Promise
,工厂函数可以await
异步任务。Nest 将在实例化依赖于(注入)此类提供程序的任何类之前等待承诺的解决。
ts
{
provide: 'ASYNC_CONNECTION',
useFactory: async () => {
const connection = await createConnection(options);
return connection;
},
}
此处 详细了解自定义提供程序语法。
注入
异步提供程序通过其令牌注入到其他组件,就像任何其他提供程序一样。在上面的示例中,您将使用构造 @Inject('ASYNC_CONNECTION')
。
示例
TypeORM 配方 有一个更实质性的异步提供程序示例。