-
카테고리
-
세부 분야
프론트엔드
-
해결 여부
미해결
질문있습니다
20.10.13 18:38 작성 조회수 131
1
파일명 : src/util/fetch.js
checkSlowTask = yield fork(makeCheckSlowSaga(actionType, fetchKey));
apiResult = yield value;
이 두 줄에 관해서 질문이 있습니다.
apiResult 값은 value 값이 리턴 될 때까지 기다린 다음 실행이 되는데, checkSlowTask 값은 비동기로 진행되는 이유를 잘 모르겠습니다...
혹시 ...
나머지 부수효과 함수는 비동기 처리를 하고 있지만
call 함수는 인자로 받은 함수를 실행해 주는 역할을 하며, 전달 받은 함수가 프라미스를 반환하는 경우 프라미스가 처리될 때까지 제너레이터를 중지 시키기 때문인가요?
답변을 작성해보세요.
1
HongJiseong
질문자2020.10.13
call 함수와 fork 함수는 blocking / non-blocking 실행의 차이가 있었군요 ㅠㅠ 강의 너무좋습니다 진짜로 ...
답변 감사합니다!
1
이재승
지식공유자2020.10.13
안녕하세요
멈추지(blocking) 않고 (마치 multi threading 처럼) 실행하는 것이 fork의 역할이라서 그렇습니다.
각 부수효과에 대해 어떻게 처리할지는 사가 미들웨어에서 결정하는데요
`yield fork(...` 를 실행하면 사가 미들웨어는 이번에 실행할 것이 fork 부수효과라는 것을 알고 있습니다.
그리고 위에서 말한대로 약속된 방식으로 처리를 합니다.
답변 2