[Node.JS] Promise객체 사용 정리

박두팔이·2024년 3월 18일
0

Node.JS

목록 보기
12/20
  • 코드를 리팩토링 하면서 나는 uploadImage().single(’file’);을 사용하기 위해 uploadImage객체를 Promise객체로 변경하는 코드를 작성했었다.
    • uploadImageAsync ()는 util.promisify를 사용하여 Promise기반으로 변환한다.

      const uploadImageAsync = util.promisify(uploadSingleImage);
  • 왜냐하면, Promise기반으로 변환해야 하는 이유는 비동기 처리를 위한 async/await패턴으로 사용하기 위해서다.
  • 비동기 함수가 Promise를 반환하지 않는 경우, 함수의 결과를 await키워드로 받을 수 없다. 즉, 함수의 실행 결과를 변수에 할당하거나, 해당 결과를 기반으로 추가 작업을 진행하기 위해서는 반드시 Promise객체로 변환해야한다.

🚨 그러나 나의 경우, uploadImage객체를 Promise기반으로 변환할 필요가 없었다.

  • 왜냐하면, multer 라이브러리와 multer-s3 스토리지 엔진은 내부적으로 AWS SDK를 사용하여 s3에 비동기적으로 파일을 업로드 하기 때문이다. 즉, multer미들웨어는 이 비동기 작업을 처리하고, Express미들웨어 체인 내에서 다음 미들웨어 또는 라우트 핸들러로 제어를 전달하기 때문에 별도로 Promise객체로 변환할 필요가 없다.
profile
기억을 위한 기록 :>

0개의 댓글