NestJS로 개발을 하다가 값이 안나오고 Promise { <pending> }이 나와서 포스팅 해보려 한다.
정말 단순한 문제고 비동기함수 - Promise, async/await에 대해서만 이해를 하고있어도 간단히 해결 할 수 있다.
비동기 함수에 대해서는 다음에 제대로 정리해서 포스팅을 하겠다.
우선 어쩌다가 이런 상황이 발생했는지 보자.
간단한 내용말고는 service부에서 로직을 짜야하는데 포스팅을 위해 급하게 짠거니 감안하고 봐주시길. 꾸벅..
자, 해당코드를 돌렸더니 Promise { <pending> } 오류가 발생했다.
"const vote_ data =" 부분을 보면 서비스 부에서 값을 받아오는데
앞에서 async로 비동기를 선언했기 때문에 반드시 Promise로 반환한다.
Promise는 3가지 상태가 있는데
- pending(대기): 이행하거나 거부되지 않은 초기 상태
- fulfilled(이행): 연산이 성공적으로 완료된 상태
- rejected(거부): 연산이 실패한 상태
이 중에서 내 상태는 Promise배열이 아무것도 실행되지 않은 초기 상태인 것이다.
async를 써서 Promise를 반환하지만 Promise실행을 시켜주지 않아서 에러가 발생 한것이다.
답은 await를 사용해주면 된다.
이제 비동기 함수가 정상적으로 돌아가면서 Promise { <pending> } 에러가 사려졌을 것이다.
'Web > NestJS' 카테고리의 다른 글
[Nest.JS] @Query() 파라미터 값 Boolean으로 사용하는 방법 (2) | 2023.03.01 |
---|---|
[Nest.JS] Error "require statement not part of import statement." 해결 방법 (0) | 2023.02.27 |
[Nest.JS] 순환종속성(Circular Dependency) 해결 "Use forwardRef() to avoid it." (0) | 2023.02.21 |
[Nest.JS] @Module의 특징과 공유모듈(shared module) 사용하기 (0) | 2023.02.19 |
[Nest.JS] CurrentUser()보다 편리한 커스텀 데코레이터 (1) | 2023.02.12 |