728x90
반응형
call
call은 동기 함수 호출(blocking)
call을 하면 로그인 api가 return할 때까지 기다려서 result에 값을 넣어줌
call의 경우 👇
function* logIn() {
try{
const result = yield call(logInAPI);
axios.post('/api/login')
.then((result) => {
yield put({
type: 'LOG_IN_SUCCESS',
data: result.data,
});
})
} catch (err) {
yield put({
type: 'LOG_IN_FAILURE',
data: err.response.data,
});
}
}
fork
fork는 비동기 함수 호출(non blocking)
fork를 하면 비동기이기 때문에 요청 보내버리고 결과와 상관없이 바로 다음것이 실행됨
fork의 경우 👇
function* logIn() {
try{
const result = yield fork(logInAPI);
axios.post('/api/login')
yield put({
type: 'LOG_IN_SUCCESS',
data: result.data, //result가 없는게 말이 안되기 때문에 fork를 사용할 수 없음
});
} catch (err) {
yield put({
type: 'LOG_IN_FAILURE',
data: err.response.data,
});
}
}
반응형
'프로그래밍 > React' 카테고리의 다른 글
더미데이터 만드는 유용한 라이브러리(shortid, faker) (0) | 2021.04.27 |
---|---|
takeEvery, takeLatest, takeLeading (0) | 2021.04.26 |
제너레이터(generator) (0) | 2021.04.21 |
Redux-thunk와 Redux-saga 비교 (0) | 2021.04.20 |
redux-thunk란? (0) | 2021.04.19 |