NESTJS를 배워보자(13) - Asynchronous providers

yoon·2023년 8월 22일
0

NESTJS를 배워보자

목록 보기
13/21

Asynchronous providers

nest의 공식문서를 토대로 작성합니다.

하나 이상의 비동기 작업이 완료될 때까지 애플리케이션 시작을 지연시켜야 하는 경우가 있습니다. 예를 들어 데이터베이스와 연결이 설정될 때까지 request를 받지 않으려는 경우가 있습니다. 비동기 프로바이더를 사용하여 이를 해결할 수 있습니다.

이를 위한 구문은 useFactory 구문과 함께 async/await을 사용하는 것입니다. factory는 Promise를 반환하고 factory 함수는 비동기 작업을 대기할 수 있습니다. Nest는 이러한 프로바이더에 의존하는 클래스를 인스턴스화하기 전에 promise의 해결을 기다립니다.

{
  provide: 'ASYNC_CONNECTION',
  useFactory: async () => {
    const connection = await createConnection(options);
    return connection;
  },
}

Injection

비동기 프로바이더는 다른 프로바이더와 마찬가지로 토큰을 통해 다른 컴포넌트에 주입됩니다. 위의 예에서는 @Inject('ASYNC_CONNECTION') 구문을 사용합니다.

Example

The TypeORM recipe에 비동기 프로바이더에 대한 보다 실질적인 예시가 있습니다.

이번 챕터는 굉장히 짧네요~!! 그냥 한 줄 요약하자면 async/await으로 비동기 프로바이더가 가능하다!

고생하셨습니다!
다음 글에서 만나요~~😀


저도 아직 배우는 단계입니다. 지적 감사히 받겠습니다. 함께 열심히 공부해요!!

profile
백엔드 개발자 지망생

0개의 댓글