해결된 질문
작성
·
311
3
this.$store.dispatch('LOGIN', userData);
이 부분에서 Promise가 리턴 되서 await 를 붙일 수 있는걸로 이해했는데요, action에서 혹시 data를 쓸일이 있을 수도 있으니 return data; 를 해준다고 하셨는데 그럼 Promise와 data 둘다 같이 리턴되는 것인가요?
답변 2
6
2020. 02. 13. 20:38
안녕하세요 jude님, 좋은 질문입니다 :) async 함수의 리턴 값에 특정 데이터를 지정해주면 그 값은 프로미스가 이행(fulfilled)된 상태로 전달됩니다. 코드 상으로 말씀드리면 아래와 같이 될 것 같아요.
async fetchData() {
const { user } = await fetchUser();
return user;
}
fetchData(); // 결과 값은 Promise.resolve(user);
// 1. 이행된 결과 값을 프로미스로 처리하는 방법
fetchData().then(user => console.log(user));
// 2. 이행된 결과 값을 async로 처리하는 방법
async someMethod() {
const user = await fetchData();
console.log(user);
}
살펴보시고 혹시 이해 잘 안가시는 부분 있으면 알려주세요 :) 수강평 좋게 남겨주신 것 기쁘게 잘 받아봤습니다. 앞으로도 잘 부탁드릴게요 :) 강의 수강해주셔서 다시 한번 감사드립니다.
※ 만약 프로미스 이행 상태가 뭔지 기억이 잘 안나시면 프로미스 쉽게 이해하기 글 한번 읽어보세요 :)
1