Redux-Saga effects


all
allはいろいろな伝説を一つにした.
export default function rootSaga() {
	all([counter(), login(), post(), todo()])
}
delay
delayはsm単位のdelayです
function* delaySaga() {
	yield delay(1000) // 1초
}
put
PUTをDispatchと同じように考えればいいです.
function* delayIncreaseSaga() {
	yield delay(1000)
	yield put(increase())
}
take
takeはタイプの動作を入力すると、次の動作を実行します.
function* increaseSaga() {
	while(true) {
		yield take(INCREASE)
		yield put(increase())
	}
}
takeEvery
takeEveryはtypeとコールバック関数をパラメータとして受信し,入力タイプの動作時に2番目の受信のコールバック関数を実行する.
function* increaseSaga() {
	yield takeEvery(INCREASE, function*() {
		yield put(increase())
	})
}
takeLatest
takeLatestはtakeEveryと似ていますが、異なる点は、同じタイプの動作が同時に複数の動作を加えた場合、takeLatestは最後の動作のみを実行することです.逆に、TakeEveryはすべての動作を実行します.
// increase 액션 10개가 동시에 들어와도 1밖에 증가 안 함
function* increaseSaga() {
	yield takeLatest(INCREASE, function*() {
		yield put(increase())
	})
}
fork, call
二人は同じ仕事をしているが,違いは動機か動機かである.forkは非同期で動作します.callは同期して動作する.
function* Fork() {
  yield delay(1000);
  console.log("fork");
}

function* Call() {
  yield delay(1000);
  console.log("call");
}

function* ForkTestSaga() {
  yield fork(Fork);
  console.log("forkTest");
}
// ForkTestSaga 실행 결과
// forkTest
// fork

function* CallTestSaga() {
  yield call(Call);
  console.log("callTest");
}
// CallTestSaga 실행 결과
// call
// callTest
select
stateの取得
react-redoxではセレクタの使用と見なすことができます
function* increaseSaga() {
	const state = yield select();
	console.log(state); // {counter: 0}
	yield put(increase());
}