인프런 커뮤니티 질문&답변

eg2data님의 프로필 이미지
eg2data

작성한 질문수

Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"

json-server & axios : CRUD 구현

createPost()의 async, awiat

작성

·

442

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요.

오늘 수업에서 Promise 객체를 다루면서 async, await를 알려주셨습니다.

그런데 Promise 객체를 다룰 때, 해당 함수의 return을 받을 필요가없다면 async, await를 명시하지 않아도 되는건가요?

PostCreateView.vue 파일의 save() 함수에서 createPost() 함수를 사용할 때 이러한 부분이 있었습니다.스크린샷 2023-02-15 09.50.39.png

답변 1

1

짐코딩님의 프로필 이미지
짐코딩
지식공유자

안녕하세요. 상황에 따라 다르겠지만 저는 대부분 정의하는 편입니다.

예를들어 createPost에서 에러가 발생했다면 페이지를 이동(router.push({name: 'PostList'})) 하지 않고 alert 을 띄우기 위해서는 await을 사용해야 겠죠?

아래 예시처럼요 :)
(await을 사용안한다면 API 성공, 실패여부에 관계없이 페이지 이동을 하겠죠?)

try {
	await createPost(data);
	router.push({ name: 'PostList' });
} catch (err) {
	alert(err.message);
}

안녕하세요 짐코딩님,

비슷한 내용의 질문이 있어 답글로 질문드립니다.

원질문자님의 질문 속 코드처럼 짐코딩님의 코드를 보면 PostCreateView 내 save 함수에는 async await을 활용하지 않으셨고, PostEditView 내 edit 함수에는 async await을 활용하셨습니다.

 

save에서 async await을 활용하지 않으신 건 post로 return 받을 게 없으니 필요 없어 그러셨다고 파악했는데, edit에서 put 역시 return 받는 게 없는데 async와 awiat을 활용하신 이유가 궁금하였습니다.

 

하지만 현재 짐코딩님의 답글을 보니, save에서 async await을 활용하지 않으신 건 실수라 생각되고, 원래는 모두 붙이는 걸 선호하시는 거 같은데(의도치 않은 라우터 동작 등) 제가 파악한 게 맞을까요 ?

스크린샷 2023-05-23 150549.png

짐코딩님 깃 속 코드는 다음과 같습니다.

 

감사합니다.

eg2data님의 프로필 이미지
eg2data

작성한 질문수

질문하기