TroubleShooting
[Node.js, fastify-cli] 함수 출력 결과가 Promise { <pending> } 로 나오는 현상
아임다디
2022. 4. 16. 20:47
발생시기
fastify-cli 프레임워크를 사용한 Node.js 백엔드 프로젝트 도중, 작성한 api를 console.log로 결과를 출력해 볼 때 발생했던 상황
상황
MongoDB에서 collections안에 있는 정보들을 Read하는 함수의 결과값을 테스트해보기 위해 console.log로 출력해보았는데,
출력 결과가 뜬금없는 Promise { <pending> }
이 나왔다.
원인
결과가 async/await
를 통해 Promise
객체로 만들어진 함수라 비동기 형식으로 값에 접근을 해줘야 한다.
해결
결과를 받아오는 함수 앞에 await
를 붙여주면 된다.
자바스크립트는 await
키워드를 만나면 Promise가 처리될 때 까지 기다리고 결과가 리턴된다.
- const curBody = readMyRestaurant(this.mongo, tmpId)
+ const curBody = await readMyRestaurant(this.mongo, tmpId) // awiat를 추가해준다
결론
Js의 async/await
로 함수를 만들었다면, 함수에 대한 결과값은 await로 받아와야 한다