redux-saga/takeEvery, put, call
sagaは非同期論理を実現する際に使用され、ずっと注意していても忘れてしまうことが多い...そのような感じの関数がたくさんあります.私はこれがすべて非同期のロジックであることを知っていて、しかし、ほほほ、、、、とにかく私は努力して勉強しました
generate関数に基づく関数.generate関数は,コード進行中に歩留まりに遭遇したら停止し,継続の指示があれば停止した部分から再開する関数である.
<サンプルコード>
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は所定の関数を実行する機能を有する.もちろん非同期論理です!Reference
この問題について(redux-saga/takeEvery, put, call), 我々は、より多くの情報をここで見つけました https://velog.io/@seulg2027/redux-saga-takeEvery-put-callテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol