sagas 폴더 안의 index.js
import { all, fork, take } from 'redux-saga/effects';
function* watchLogIn() {
yield take('LOG_IN');
}
function* watchLogOut() {
yield take('LOG_OUT');
}
function* watchAddPost() {
yield take('ADD_POST');
}
export default function* rootSaga() {
yield all ([
fork(watchLogIn),
fork(watchLogOut),
fork(watchAddPost),
])
}
all : 배열을 받음. 배열안의 것들을 한방에 실행함.
fork : 동기 함수 호출
call : 비동기 함수 호출
takeEvery : take는 기본적으로만 한 번만 실행되고 사라지는데, takeEvenry는 while(true){}안에 있는 것처럼 계속 실행 가능하다.
takeLatest : (takeEvery기능을 하면서)마우스 연속으로 눌렀을 때 마지막 것만 프론트에 반영. 서버에는 전부 전송되므로 서버에서 검증 처리가 필요하다.
throttle : 지정한 몇 초 이내 연속적인 요청은 서버에도 프론트에도 요청안됨.