- callback回调函数
// models effects: { *add({ payload, callBack }, { call, put, select }) { // eslint-disable-line const response = yield request('/apis/serverless/add', { method: 'GET', data: payload, }); const num = yield select(state => state.num + 1); if (response && response.success) { callBack(response.data) } else { Message.error(response.msg); } }, } // 组件内 this.props.dispatch({ type:'preCenter/add', payload: params, callBack: result =>{ console.log(result); } })
- 利用prmise改写
// models effects: { *addAfter1Second(action, { call, put }) { yield call(delay, 1000); const response = yield put({ type: 'add' }); resolve(response) }, }, // 组件内 new Promise((resolve) =>{ this.props.dispatch({ type: 'addAfter1Second', payload: params, }) }).then(result => { console.log(result) })
- 使用then方法
// models reduers: { add(state, { payload }){} }, effects: { *addAfter1Second(action, { call, put }) { yield call(delay, 1000); yield put({ type: 'add' }); }, }, // 组件内 this.props.dispatch({ type: 'addAfter1Second', payload: params, }).then(result => { console.log(result) })
dva数据流effects获取返回值的几种方式
最新推荐文章于 2024-03-19 07:45:00 发布