Asynchronous Providers

이연중·2021년 9월 14일
0

NestJS

목록 보기
12/22

어플리케이션 동작 과정에서 하나 이상의 비동기 작업이 완료될 때까지 지연되어야 하는 경우가 있다.

예를 들어, 데이터베이스와 연결이 설정될 때까지 요청 수락을 하지 않는 경우이다.

비동기 프로바이더를 이용하여 이를 구현할 수 있다.

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

profile
Always's Archives

0개의 댓글