Redux Saga-如何同步运行工人? addItemWorker.js getItemsWorker.js watchers.js

问题描述

我有2个按顺序运行的传奇工作者:首先addItemWorker,然后是getItemsWorker

我需要如果addItemWorker失败,则getItems 不应运行。

addItemWorker.js

function* addItemWorker(action) {
   try {
      const user = yield call(api.addItem,action.payload.item);
      yield put({type: "ADD_ITEM_SUCCESS"});
   } catch (e) {
      yield put({type: "ADD_ITEM_Failed",message: e.message});
   }
}

getItemsWorker.js

function* getItemsWorker() {
   try {
      const items = yield call(api.getItems);
      yield put({type: "GET_ITEMS_SUCCESS"},items);
   } catch (e) {
      yield put({type: "GET_ITEM_Failed",message: e.message});
   }
}

watchers.js

function* addItemWatcher() {
    yield takeEvery(types.ADD_ITEM_ASYNC,addItem);
}
function* getItemsWatcher() {
    yield takeEvery(types.GET_ITEMS_ASYNC,getItemsWorker);
}

export function* rootSaga() {
    yield all([
        call(addItemWatcher),call(getItemsWatcher),]);
} 

请帮助我重构代码,以使getItemsWorker出错时getItemsWorker不会运行。我想让两个工人都小些,并分别安排他们。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)