• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

authSaga.js에서 loginUser(action)에서 call 함수를 쓰는 이유가 뭔가요?

21.01.17 21:27 작성 조회수 93

0

const result = loginUserAPI(action.payload)를 적을 경우 오류가 나는데 이유를 잘 모르겠습니다.

답변 1

답변을 작성해보세요.

0

(1) LOGIN_REQUEST가 발생하면, 이걸을 보고 있다가 감지를 합니다 // takeEvery(LOGIN_REQUEST, loginUser)
const result = yield call(loginUserAPIaction.payload);

(2)이것의 의도는 넘겨져 온 값을 가지고 loginUserAPI함수를 불러, 값이 오기까지 기다린 후 그것을 result에 할당하는 것입니다. 

그런데 여기서 call을 안쓰면 값이 오지도 않았는데 할당해버렸으므로, 빈객체만 할당받아, 아무런 값이 없는 걸로 나옵니다. 

그래서 postSaga에서 loadPosts에 const result = loginUserAPI(action.payload)으로 바꿔서 돌려보시면 아마도 post는 더이상 없다고 나오는 것을 보실 수 있으실 것입니다.

[참고] https://mskims.github.io/redux-saga-in-korean/