• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

궁금한 점이 있습니다..

20.08.07 11:15 작성 조회수 126

0

로그인 버튼을 클릭하면 LoginActionRequest가 dispatch 되어 reducer가 실행 됨가 동시에 saga에서도   LoginActionRequest되는데 이는

yield takeLatest(LOG_IN_REQUEST, logIn);

가 기다리고 있다가 실행 되는 거군요 ?! 

그러면 페이지가 로드 될때마다  모든 

watchLogin,watchLogOut,watchaddPost등의 generator가 실행 되는 건가요 ? 해당 되는 action type이 나오기 전까지 대기하다가 나오면 그때 이벤트 처럼 실행 되는거구요..

그런데 제껀 yield를 기다리지 않고(로그인 버튼이 클릭이 안된 상태에서) 그냥 넘어가 버립니다ㅜㅜ

(이건 콘솔입니다..)

답변 3

·

답변을 작성해보세요.

1

take를 하면 중단되는데 takeLatest를 하면 중단되지 않습니다. 사가의 이펙트마다 효과가 달라요

0

song님의 프로필

song

질문자

2020.08.07

아 그러면 ! 이벤트 등록 처럼 생각해서  로그인 버튼 눌렀을 시에 yield takeLatest(LOG_IN_REQUEST, logIn); 가 실행 되는 거군요~ 

저기서 중단 되었다가 yield takeLatest(LOG_IN_REQUEST, logIn); 실행 된 뒤에 finish가 출력 되는 줄 알았습니당!ㅜㅜ

0

takeLatest는 이벤트를 등록하는 거라고 보셔도 되고요. 이벤트를 등록했으니 다음 console.log('finish login')이 호출되죠.