강의

멘토링

커뮤니티

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

Stone Circle님의 프로필 이미지
Stone Circle

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

saga 이펙트 알아보기

call과 fork를 쓸 때 동기/비동기 처리에 대한 질문

작성

·

464

0

function* login(){
  consat result = yield call(loginApi);
}

call로 api요청함수를 실행하면, api요청함수가 모두 완료 될 때까지 기다리다가, 요청이 완료되면 코드를 다시 실행하잖아요?(블럭). 그럼 기다리는 동안 처리해야 할 일이 있다면 설마 쓰레드가 멈춰있지는 않을 테니, 이럴 경우 블럭/비동기 케이스에 해당되는 건가요?? 

답변 2

1

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

제너레이터는 yield call이 await이라고 보시면 됩니다. yield fork를 쓰면 await 없이 promise를 호출하는 것이고요. 둘 다 논블럭/비동기입니다.

0

밑에 답변하신 부분이 잘 이해가 안되는데요. yield call이 await라고 보면 비동기의 응답이 올때까지 기다렸다가 그 아래 동작을 수행하고 yield fork일 경우에는 비동기 요청만 보내놓고 아래동작 수행 이렇게 동작하는게 맞나요.

블럭/비동기, 논블럭/비동기 await 없이 promise 호출이라는게 잘 이해가 안되네요.

await 없이 호출이란건 then을 쓰지 않고 promise만 호출했다는 말일까요

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

네 맞습니다.

Stone Circle님의 프로필 이미지
Stone Circle

작성한 질문수

질문하기