3 回答
TA贡献1865条经验 获得超7个赞
我测试了一下,这样是可以的,但是如果不让直接return this.$store.dispatch('xxxApi', datas),而要自己根据返回的内容来 构建一个 promise改如何写呢?
是不是应该这么写呢?
//调用dispatch后,不管是正确还是错误,都返回一个自定义的`promise`对象,而不是返回调用dispatch默认的promise对象(根据自身业务进行包装了一下),这么理解正确么?
this.$store.dispatch('xxxApi', datas).then(res => {
if(res.isShow){ //业务上判断正确
return new Promise(function(resolve, reject){
resolve(res) //第三方调用,then里面可以获取到 res 信息,对不?
})
}else{
return Promise.reject(err) //返回自定义(业务)错误信息
}
}).catch(err +> {
return Promise.reject(err) //返回未知错误信息
})
TA贡献1811条经验 获得超6个赞
首先,是的。
其次,这段代码最好改成,这样更符合 Promise 的标准用法:
function isPrvid() {
return this.$store.dispatch('api', data)
.then(res => {
if (res.isShow) {
return res;
}
throw new Error(err);
});
}
添加回答
举报
