1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import { call, put, takeEvery, takeLatest } from 'redux-saga/effects'
import Api from '...'
function* fetchUser(action) {
try {
const user = yield call(Api.fetchUser, action.payload.userId);
// SUCCESS 액션을 디스패치한다.
yield put({type: "USER_FETCH_SUCCEEDED", user: user});
} catch (e) {
// FAIL 액션을 디스패치한다.
yield put({type: "USER_FETCH_FAILED", message: e.message});
}
}
function* mySaga() {
// TRY 액션의 디스패치를 받아온다.
yield takeEvery("USER_FETCH_REQUESTED", fetchUser);
}
// 스레드처럼 동작하는 Saga를 만든다.
function* mySaga() {
yield takeLatest("USER_FETCH_REQUESTED", fetchUser);
}
export default mySaga;
|