VUE大家能讲讲为什么这个axios的为什么外面又套了一个promise?
axios返回的response.data
可以拿来用了 但是为什么外面又套了一层promise?
用的时候还要这样去写这样不是更麻烦了吗??昨天遇到的这个问题 刚才看到一个人提问了差不多的问题 但是那个人没有贴代码 我贴上代码大家能解释一下为什么要这样做吗?谢谢
get().then(data => {
console.log(data)
})
export function get (url, data = {}) {
return new Promise((resolve, reject) => {
axios.get(url, {params: data})
.then(response => {
resolve(response.data)
}, err => {
reject(err)
})
})
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
可以增加js引擎gc负担,为将来向甲方要钱预留优化空间
还增加了冗余代码,可以减少代码可读性增加维护难度,让公司轻易不敢炒自己鱿鱼
看了别的答案,发现自己并没有很好理解这个问题,因为如果他要直接操作responsive.data,它应该这样写而不是再次封装一层promise。
1.一般项目架构会将axios模块抽取为一个独立的模块,文件功能单一原则,便于维护
2.代码中利用new Promise的then接收axios的resolve值
这样get方法后就可以直接在另一功能代码中
3.如果利用return是没法拿到response值,因为axios是基于promise的库
包一层
Promise
多此一举 完全没必要Promise.prototype.then