redux-saga无法阻塞?

let { home, dispatch } = this.props;
dispatch(homeAction.getAddressList(home));

console.info('home:', home.addressList);
this.renderTable();

saga如下:(saga中要增加addressList的状态值)

function* getAddressList(action){
    let result = yield call(eos.brics4o.addressService.getAddressList, {
        xzqh: action.sq ? action.sq : (action.jd ? action.jd : action.qu),
        jlx: action.jlx,
        mphm: action.mphm,
        glqk: action.glqk,
        sh: action.sh,
        cjqk: action.cjqk
    });
    yield put({
        type: homeAction.CHANGE_FORM,
        fieldName: 'addressList',
        value: result
    });
}

function* watchGetAddressList(){
    yield takeLatest('GET_ADDRESS_LIST', getAddressList);
}

export default function* rootSaga(){
    yield fork(watchGetAddressList);
}

为什么运行dispatch(homeAction.getAddressList(home))这句不会阻塞?

阅读 2.2k
1 个回答

call是会阻塞的effect。不过你用的是它可latest不会立刻阻塞而已

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进