Fundamentals
异步提供者
学习如何在 NestJS 中使用异步提供者来处理需要等待异步任务完成的场景,如数据库连接建立等
有时,应用程序启动应该延迟到一个或多个异步任务完成。例如,您可能不希望在与数据库的连接建立之前开始接受请求。您可以使用异步提供者来实现这一点。
语法是将 async/await 与 useFactory 语法一起使用。工厂返回一个 Promise,工厂函数可以 await 异步任务。Nest 将等待 promise 解析,然后再实例化任何依赖于(注入)此类提供者的类。
{
provide: 'ASYNC_CONNECTION',
useFactory: async () => {
const connection = await createConnection(options);
return connection;
},
}
提示 在这里了解更多关于自定义提供者语法的信息。
注入
异步提供者通过其令牌注入到其他组件中,就像任何其他提供者一样。在上面的例子中,您将使用构造 @Inject('ASYNC_CONNECTION')。
示例
TypeORM 配方有一个更实质性的异步提供者示例。