인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

dgf58203305's profile image
dgf58203305

asked

Practical React Programming

Managing API communication status values with makeFetchSaga

질문있습니다

Written on

·

187

1

파일명 : src/util/fetch.js

checkSlowTask = yield fork(makeCheckSlowSaga(actionType, fetchKey));
apiResult = yield value;

이 두 줄에 관해서 질문이 있습니다. 
apiResult 값은 value 값이 리턴 될 때까지 기다린 다음 실행이 되는데, checkSlowTask 값은 비동기로 진행되는 이유를 잘 모르겠습니다...

혹시 ...

나머지 부수효과 함수는 비동기 처리를 하고 있지만

call 함수는 인자로 받은 함수를 실행해 주는 역할을 하며, 전달 받은 함수가 프라미스를 반환하는 경우 프라미스가 처리될 때까지 제너레이터를 중지 시키기 때문인가요?

reduxreact

Answer 2

1

dgf58203305님의 프로필 이미지
dgf58203305
Questioner

call 함수와 fork 함수는 blocking / non-blocking 실행의 차이가 있었군요 ㅠㅠ 강의 너무좋습니다 진짜로 ...
답변 감사합니다!

1

landvibe님의 프로필 이미지
landvibe
Instructor

안녕하세요
멈추지(blocking) 않고 (마치 multi threading 처럼) 실행하는 것이 fork의 역할이라서 그렇습니다.
각 부수효과에 대해 어떻게 처리할지는 사가 미들웨어에서 결정하는데요
`yield fork(...` 를 실행하면 사가 미들웨어는 이번에 실행할 것이 fork 부수효과라는 것을 알고 있습니다.
그리고 위에서 말한대로 약속된 방식으로 처리를 합니다.

dgf58203305's profile image
dgf58203305

asked

Ask a question