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

stefan CHO님의 프로필 이미지
stefan CHO

작성한 질문수

React로 NodeBird SNS 만들기

login 제너레이터에서 put앞에 yield를 안쓴다면에 대한 질문

작성

·

157

0

안녕하세요, 

function* login() {
try {
yield delay(2000);
yield put({ type: LOG_IN_SUCCESS });
} catch (e) {
yield put({ type: LOG_IN_FAILURE });
}
}

위 코드에서 put앞에 yield를 쓰지 않을 경우, 로그인 버튼을 누르면 REQUEST 무한대기 상태에 빠집니다. (loading 아이콘 뱅글뱅글 돌아가면서)

위 코드와 같이 yield를 추가해줬을때는 제대로 동작을 하는데요.

코드 동작여부와 별개로 궁금하여 질문드립니다.

yield를 쓰지않았을때 무한로딩이 되는 이유가 뭘까요

yield가 마지막에 없더라도 put이 실행되어야한다고 생각했는데, 어느부분을 제가 잘못생각하고 있을까요?

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

https://github.com/redux-saga/redux-saga/issues/1669

비슷한 질문이 리덕스사가 깃헙에 있네요. put은 dispatch하라고 하는 effect인데 그게 바로 dispatch된다는 보장은 없는 것 같습니다.

stefan CHO님의 프로필 이미지
stefan CHO

작성한 질문수

질문하기