🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 异步提供者 在完成一些异步任务之前,应用程序必须等待启动状态, 例如,在与数据库的连接建立之前,您可能不希望开始接受请求。 在这种情况下你应该考虑使用异步 `provider`。 其语法是使用 `useFactory` 语法的 `async/await`。工厂返回一个承诺,工厂函数可以等待异步任务。在实例化依赖于(注入)这样一个提供程序的任何类之前,`Nest`将等待承诺的解决。 ```typescript { provide: 'ASYNC_CONNECTION', useFactory: async () => { const connection = await createConnection(options); return connection; }, } ``` > 在这里了解 [更多](https://docs.nestjs.com/fundamentals/custom-providers)自定义 provider 的相关方法。 ### 注入 与任何其他提供程序一样,异步提供程序通过其令牌被注入到其他组件。在上面的示例中,您将使用结构`@Inject`(`'ASYNC_CONNECTION'`)。 ### 实例 以上示例用于演示目的。如果你正在寻找更详细的例子,请看 [这里](https://docs.nestjs.com/recipes?id=sql-typeorm)。