Asynchronous Providers
어플리케이션 동작 과정에서 하나 이상의 비동기 작업이 완료될 때까지 지연되어야 하는 경우가 있다.
예를 들어, 데이터베이스와 연결이 설정될 때까지 요청 수락을 하지 않는 경우이다.
비동기 프로바이더를 이용하여 이를 구현할 수 있다.
useFactory
구문과 함께 async/await
를 사용하면 된다.
팩토리는 Promise
객체를 반환하고 팩토리 함수는 비동기 작업을 await
할 수 있다.
Nest는 그러한 프로바이더에 의존성을 주입하는 클래스를 인스턴스화하기 전에 Promise의 완료를 기다린다.
{
provide: 'ASYNC_CONNECTION',
useFactory: async () => {
const connection = await createConnection(options);
return connection;
},
}
Injection
비동기 프로바이더는 다른 프로바이더와 마찬가지로 토큰에 의해 다른 구성 요소에 삽입된다.
위의 예를 @Inject('ASYNC_CONNECTION')
구문을 사용해 주입할 수 있다.
참고
https://docs.nestjs.kr/fundamentals/async-providers
Author And Source
이 문제에 관하여(Asynchronous Providers), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@alwayslee_12/Asynchronous-Providers저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)