트러블슈팅›DevOps•
1분
•await를 걸어도 안 기다려지는 이유 — Promise return 누락
비동기 함수에서 `.then()` 체인을 쓸 때, `return`을 빼먹으면 `await`가 아무 의미 없는 코드가 됩니다. 실제로 겪은 사례로 정리합니다.
Before
function getComnCode() {
NHApi.post("/api/cm/getComnCList", { comnCId: "EVT_STSC" }) // ⚠️ return 없음
.then((res) => {
ectStsc = [...res.comnCList];
})
.catch((error) => {});
}
After
function getComnCode() {
return NHApi.post("/api/cm/getComnCList", { comnCId: "EVT_STSC" })
.then((res) => {
ectStsc = [...res.comnCList];
})
.catch((error) => {});
}
왜 이게 문제인가
- JS 함수는 명시적으로
return하지 않으면undefined를 반환합니다. getComnCode()가 Promise를 반환하지 않으므로, 호출부의await getComnCode()는await undefined와 같아져 즉시 통과됩니다.- 내부
.then()은 백그라운드에서 계속 실행되지만, 호출부는 그걸 기다릴 방법이 없습니다. await를 추가하는 것만으론 부족합니다. 애초에return이 있어야await가 의미를 가집니다.