封装了axios,请求状态是200,但then和catch 方法都进去了
my_axios[method] = function (uri, data, config) {
return new Promise(function (resolve, reject) {
instance[method](uri, data, config)
.then((respone) => {
console.log('成功')
if (respone.status) {
resolve(respone);
} else {
if (respone.msg.match(/[0-9]+/)[0] === '302') {
Vue.$message.error('登录过期,请重新登录')
Vue.$router.push('/login')
}
resolve(respone);
}
})
.catch((response) => {
console.log('失败')
Vue.$message.error('服务器错误,请稍后再试')
reject(response)
})
})
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
“成功”可以被打印出来,那么表示你的
instance[method]
这个promise是resolve了的。我猜:你的代码在console.log('成功')之后,resolve(...)之前报错了
建议你在catch里面把response在控制台打印出来,看看是不是上面的then中的逻辑有错误(比如,上面then中的response实际上是undefined)
emmm 我们是这么封的
'302'去掉引号