post/async-function-about-return-await/ #26
Replies: 3 comments 6 replies
-
return await 에 대한 블로그글들 반 이상이 이상한 예시이던데.. 비동기 함수의 에러를 캐치하려면 await이 당연히 있어야하고 없으면 캐치가 안되는게 당연한데 로직과 무관한 return 을 껴서 이상한 논리가 생기네요 에러캐치도 해야하고 await을 꼭 써야하고 return 해야하면 아래와 같이 사용하는게 맞지요 const result = await f()
return result 에러핸들링을 하는곳은 어차피 상위 호출하는 곳 일부이고 남발하게 되는 경우는 코드구조가 잘못된것이죠 불필요한 행사코드를 적는 일에 불과하고 성능까지 떨어지면 굳이 쓸 필요가 있을까요? |
Beta Was this translation helpful? Give feedback.
-
안녕하세요..! 우선 부족한 글 읽어주시고 피드백 남겨주신 점 감사드립니다. 🙇♂️
아아 그렇군요. 제 글도 이상한 부분이 존재했을까요? 🤔
말씀하신 것처럼 제 기억에 아마 당시 팀원분의 코드에서 다음 코드를 마주하게 되었던 것 같아요. 🧐 async function foo() {
return temp() // 비동기 함수
} 글과 비교했을 때는 return 호출 부분과 유사해 보이네요. 코드를 처음 봤을 때 낯선 느낌을 받았고 정리하면 '어디가 잘못된 구문인지 정확하게 이해하고 싶어서', '해당 코드를 마주했을 때 잘 설명하고 싶어서' 해당 글을 쓰게 되었다고 생각해 주셨으면 해요. 남겨주신 댓글 덕분에 다시 한 번 제가 작성한 글을 검토하고 지식을 점검할 수 있었던 것 같아요. |
Beta Was this translation helpful? Give feedback.
-
추가적으로 이게 왜 동작하지? 는 Promise에 Promise를 감싸도 1 depth Promise 객체가 떨어집니다. 콘솔에 아래 코드 실행 해보시면 조금 도움되지 않을까 싶네요 function a() { return Promise.resolve(Promise.resolve(1)) }
await a() Promise.resolve가 아닌 실제 비동기나 new Promise + setTimeout 등 해보아도 동일합니다. |
Beta Was this translation helpful? Give feedback.
-
post/async-function-about-return-await/
비동기 함수의 결과를 다루는 방법에 대해 알아봅니다. await, return, return await의 차이를 이해합니다.
https://jgjgill-blog.netlify.app/post/async-function-about-return-await/
Beta Was this translation helpful? Give feedback.
All reactions