美文网首页
redux-saga/effects中的关键字:fork,cal

redux-saga/effects中的关键字:fork,cal

作者: 微志异 | 来源:发表于2020-06-08 13:50 被阅读0次

1.fork

创建一个新的进程或者线程,并发发送请求。

function* user() {
    yield takeEvery('FETCH_REQUEST', fetch_user); // 监听 FETCH_REQUEST action
}

// 并发发送请求
function* fetch_user() {
    const [users, todos] = [
        yield fork(fetchResource, 'https://jsonplaceholder.typicode.com/users'),
        yield fork(fetchResource, 'https://jsonplaceholder.typicode.com/todos')
    ]
}

function* fetchResource(resource) {
    const data = yield call(axios.get, resource);
    // 获取 call 数据,触发成功后的 action
    yield put({ type: 'FETCH_SUCESS', uu: data });
}

2.call

发送 api 请求

3.put

发送对应的 dispatch,触发对应的 action

4.takeEvery

监听对应的 action;
每一次 dispatch 都会触发;例如:点击一个新增的按钮,2s 后触发新增动作,在2s内不断点击按钮,这时候,每一次点击,都是有效的。

5.takeLatest

监听对应的 action;
只会触发最后一次 dispatch;例如:点击一个新增的按钮,2s 后触发新增动作,在2s内不断点击按钮,这时候,只有最后一次点击是有效的。

6.all

跟 fork 一样,同时并发多个 action,没有顺序。

const rootUser = [
    user(),
    todo()
];

yield all([ // 同时并发多个
    ...rootUser, // 
    add()
]);

相关文章

网友评论

      本文标题:redux-saga/effects中的关键字:fork,cal

      本文链接:https://www.haomeiwen.com/subject/cwnltktx.html