인프런 커뮤니티 질문&답변
다른 이펙트들은 사라지지않나요??
해결된 질문
작성
·
166
1
안녕하세요 제로초님!
질문이있습니다.
yield take의 경우 한번 실행되고 사라진다는 것은 이해했습니다. 제너레이터 함수이므로 그렇겠지요.
1. takeEvery나 takeLatest에 while(true) 와 같은 기능이 있다고 이해했는데 맞는건가요?
2. yield delay나 yield put 같은 것은 왜 사라지지 않나요?
3. yield는 제너레이터함수에서 호출할때마다 하나씩 끊어서 반환되는 것이라 이해했는데 왜 yield delay후에 yield put이 실행되는 건가요? takeLatest이펙트의 기능인가요..?
답변 2
1
제로초(조현영)
지식공유자
1. 맞습니다.
2. 사라집니다. 질문의 의도를 추측해보자면 take은 한 번 실행하고 더이상 실행이 안되는데 delay랑 Put은 왜 다음번에 되는지를 물어보시는 것 같은데요. watch 함수는 한 번만 실행되고 login* 함수같은 것은 매번 실행돼서 그렇습니다. 하나의 함수 안에서 더이상 호출이 안 되는거지 새로운 함수가 또 실행되면 새 함수 안에서는 실행됩니다.
3. 왜 연달아서 실행되는 지를 물어보시는 거면, saga가 내부적으로 계속 next를 호출해서 그렇습니다.
0




