• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

await 없이 실행 시 오류

21.06.27 22:44 작성 조회수 123

0

강의에서 났던 오류의 경우 await 을 Blog.updateMany 앞에 쓰지 않아서 바뀌지않은거잖아요.
비동기 코드 실행시 await 이 없으면 해당 row는 무시하고 넘어가는건가요??

답변 1

답변을 작성해보세요.

0

market nft님 안녕하세요 :)

일반적으로 비동기처리였다면(Promise) await를 하지 않아도 실행은 되요. 하지만 몽구스 명령어들은 Promise를 리턴해주는듯 하지만 사실은 그렇지 않아요. await를 사용하게 되면 Promise를 await하는 것과 동일한 효과가 발생합니다. 대부분 await를 사용하기 때문에(해당 코드가 실행이 완료된 후 다음 줄로 넘어가기 때문에) 문제가 되지 않습니다. 만약 await할 필요 없이 해당 몽구스 명령어를 즉시 실행하고 싶으시면 .exec()를 추가해주시면 되요.  Blog.updateMany(...).exec(). 이렇게 되면 Promise로 바뀝니다.

다만 여기서 await 없이 해당 코드를 실행하신다면 해당 updateMany 처리가 끝나기 전에 다음 코드가 실행 된다는걸 주의 해주세요.

며칠 전에 관련해서 답변한게 있는데 이것도 참고하시면 좋을 것 같아요.