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

좋은 웹페이지 즐겨찾기