redux-saga/takeEvery, put, call


sagaは非同期論理を実現する際に使用され、ずっと注意していても忘れてしまうことが多い...そのような感じの関数がたくさんあります.私はこれがすべて非同期のロジックであることを知っていて、しかし、ほほほ、、、、とにかく私は努力して勉強しました
generate関数に基づく関数.generate関数は,コード進行中に歩留まりに遭遇したら停止し,継続の指示があれば停止した部分から再開する関数である.

takeEvery()

const takeEvery(req, function)
requestが入力されたときに関数を実行する関数.リクエストを受信するかどうかに常に注目している関数なので、ログインなどのロジックを実現するのに適しています.
<サンプルコード>
function* watchLoginUser() {
    yield takeEvery(LOGIN_REQUEST, loginUser);
}

put

const put({
  type:"",
  payload: "",
});
putには、タイプと負荷をRedux Storeに割り当てる機能があります.
function* loginUser(loginaction) {
    try {
        const result = yield call(loginUserAPI, loginaction.payload);

        yield put({
            type: LOGIN_SUCCESS,
            payload: result.data,
        });
    } catch (e){
        yield put({
            type: LOGIN_FAILURE,
            payload: e.response,
        });
    }
}
そうすると、リーダーはtypeとペイロードを受け取り、実行させます.

call

function call(function, params)
putは割り当て機能を有するが、callは所定の関数を実行する機能を有する.もちろん非同期論理です!