dva.js(and design)实现dispatch的回调函数
Song •
4433 次浏览 •
0个评论 •
2018年07月23日
一、在dispatch中使用callback
在dva@2
中实现回调可以将回调函数作为参数dispatch
:
dispatch({
type: 'model/fetch',
payload: {
resolve,
id: userId,
},
callback: res => {
console.log(res);
}
})
然后在model
的effects
中这样写:
*fetch({ payload, callback }, {call}) {
const response = yield call(services.fetch, payload);
if (response.code === 0) {
yield put({
type: 'reload',
payload: response,
});
if (callback) callback(response);
}
二、在dispatch中使用then
如果在dva@1
中要实现回掉可以用Promise
实现:
new Promise((resolve) => {
dispatch({
type: 'model/fetch',
payload: {
resolve,
id: userId,
}
})
}).then((res) => {
console.log(res);
})
然后在model
的effects
中这样写:
...
*fetch({ payload }, { call }) {
const { resolve } = payload;
const { data } = yield call(services.fetch, payload);
if (data.code === 0) {
// 通过resolve返回数据,返回的数据将在Promise的then函数中获取到
!!resolve && resolve(data.data);
}
用户评论
当前暂无评价,快来发表您的观点吧...
更多相关好文
当前暂无更多相关好文推荐...
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
cannot import name 'CUDA_HOME' from 'mmcv.utils' 2021-12-05
-
vgg的loss一轮达到ln(1/n)阈值,如何解决 2021-11-21
-
如何下载使用utils库 2021-10-27
热门文章
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
python/MySQL分页查询方法与性能优化 2021-06-23
-
mitmproxy & python 忽略所有的https/ssl请求 2021-04-19
-
如何使用邮件/邮箱推广微信公众号/小程序? 2021-01-28
栏目最新文章
公告提示
- pytorch中文文档
- pytorch官方文档
提交评论