inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념

스피너 실행 및 종료 시점 알아보기

[강의 시간 01:00]

147

미야옹랑이

작성한 질문수 1

1

[강의 시간 01:00]

actions.js에서

fetchNewsList().then( response => {

   context.commit('SET_NEWS', response.data);

   return response;

}) 이부분의 경우 굳이 return response를 적지않아도

NewsView.vue에서

this.$store.dispatch('FETCH_NEWS').then(() => {})으로

구현이 가능한데 return response를 써줘야 then함수 체이닝이된다고 말씀하신거는 잘못 말씀해주신건가요? action에 등록한 함수들을 dispatch 하면 promise객체가 반환되기때문에 then체이닝이 가능한건가요?

vuejs javascript

답변 1

1

캡틴판교

안녕하세요 미야옹랑이님, 좋은 질문 감사합니다! 제가 해당 강좌를 촬영할 당시 `actions` 함수에서 `axios`호출 값을 리턴하고 있는 걸로 착각하고 조금 혼란스러운 설명을 드렸네요. 강의에서 의도한 것은 `this.$store.dispatch('FETCH_NEWS')`에서 호출 받은 데이터를 컴포넌트 단에서 접근하려면 `.then()`으로 체이닝해야 된다는 의미였습니다.

 

그리고 말씀해주신 것처럼 액션 함수에서 `return response`를 넣지 않더라도 `this.$store.dispatch('FETCH_NEWS').then()`으로 코드를 작성할 순 있지만, 해당 코드가 액션 함수 내부에서 실행된 비동기 처리 코드를 기다려주진 않습니다. 따라서, 비동기 처리 결과인 데이터 호출 값을 컴포넌트까지 넘겨주기 위해서는 `return 데이터 응답`코드를 넣어주셔야 합니다.

 

다시 정리하면 `actions` 함수의 호출 결과에는 반드시 Promise 객체가 있어야 하기 때문에 `return` 코드가 필요합니다 :)

깃 권한 요청 드립니다

0

50

1

깃 권한 신청

0

50

1

깃 권한 요청드립니다.

0

111

1

깃허브 권한 요청 드립니다

0

145

1

깃허브 권한 요청 드립니다

0

162

1

깃허브 권한 요청 드립니다

0

168

1

깃허브 권한 요청 드립니다.

0

154

1

안녕하세요 vue 2.7로 수강하고 있는 학생입니다. 실무에서 최하위 자식의 props와 watch의 관계를 여쭈고자 합니다.

0

208

1

ide 타입추론 기능 사용할 수 없을까요??

0

207

1

컴포넌트 링크는 vue peek 익스텐션 설치가 필수인가요??

0

228

1

Vue3로 진행중입니다

1

338

1

Vue router-link 사용시 같은 url이면

1

506

1

vue3 에러 메세지...

1

670

2

id ="app" 중복

0

271

2

use undefined 에러가 나옵니다.

1

319

2

깃허브 권한 요청드립니다.

1

359

2

권한요청드립니다.

1

299

2

Vue3에서 구글 애드센스 탑재하기

1

437

2

코드가 정상 작동 되는건지 ...

1

303

1

강의에서 api를 따로 빼셨는데 얻는 이점이 뭐죠?

1

243

1

vuex 적용시 질문

1

288

2

라우터 버전이 안맞는데 어떤걸 써야하나요

1

385

2

UserView에 id 속성만 undefined로 넘어오는데 이유를 모르겠습니다..

1

455

2

권한요청 드립니다!

1

275

2