-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
login 제너레이터에서 put앞에 yield를 안쓴다면에 대한 질문
20.04.28 01:09 작성 조회수 122
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이 실행되어야한다고 생각했는데, 어느부분을 제가 잘못생각하고 있을까요?
답변을 작성해보세요.
0
조현영
지식공유자2020.04.28
https://github.com/redux-saga/redux-saga/issues/1669
비슷한 질문이 리덕스사가 깃헙에 있네요. put은 dispatch하라고 하는 effect인데 그게 바로 dispatch된다는 보장은 없는 것 같습니다.
답변 1