Promise封装axios
importaxiosfromaxios
importstorefromstore
import{MessageBox,Message,Loading}fromelementui
importrouterfromrouter
importVuefromvue
import{getToken,setToken,removeToken}fromutilsauth
letloading;
functiongetBaseUrl(){
returnlocalStorage。getItem(BASEURL);
}
createanaxiosinstance
constserviceaxios。create({
baseURL:getBaseUrl(),process。env。VUEAPPBASEAPI,urlbaseurlrequesturl
withCredentials:true,sendcookieswhencrossdomainrequests
timeout:300000requesttimeout
})
requestinterceptor
service。interceptors。request。use(
config{
if(store。getters。token){
leteachrequestcarrytoken
〔XToken〕isacustomheaderskey
pleasemodifyitaccordingtotheactualsituation
config。headers〔Authorization〕BearergetToken()
}
config。headers〔Authorization〕BearergetToken()
loadingLoading。service({
lock:true,
text:Loading。。。,
background:rgba(255,255,255,0。5),
target:body
});
returnconfig
},
error{
if(loading!null){
loading。close();
loadingnull;
}
dosomethingwithrequesterror
console。log(error)fordebug
returnPromise。reject(error)
}
)
responseinterceptor
service。interceptors。response。use(
Ifyouwanttogethttpinformationsuchasheadersorstatus
Pleasereturnresponseresponse
Determinetherequeststatusbycustomcode
Hereisjustanexample
YoucanalsojudgethestatusbyHTTPStatusCode
response{
if(loading!null){
loading。close();
loadingnull;
}
constresresponse。data
ifthecustomcodeisnot20000,itisjudgedasanerror。
if(res。Code!20000){
Message({
message:res。MessageError,
type:error,
duration:51000
})
登录过去或未登录,跳转到登录页面
if(res。Code30001){
router。push({path:login});
}
returnPromise。reject(newError(res。MessageError))
}else{
刷新token
if(res。Data!nullres。Data。Code!nullres。Data。Code202){
axios。post(getBaseUrl()loginreplaceToken,{},{
headers:{
Authorization:BearergetToken()
}
})。then(res{
登录过去或未登录,跳转到登录页面
if(res。data。Code30001){
router。push({path:login});
}else{
if(res。data。Code20000)
setToken(res。data。Data。Token);
}
})
}
returnres
}
},
error{
if(loading!null){
loading。close();
loadingnull;
}
console。log(errerror)fordebug
Message({
message:error。message,
type:error,
duration:51000
})
returnPromise。reject(error)
}
)
exportdefaultservice
FocalSibEvo小空间也能感受大音效SibEvo2。0系列是Focal推出的卫星喇叭,改良Focal经典卫星喇叭的SibCo扬声器,可以让用户组件2。0、2。1与5。1声道,满足家庭影音娱乐各式各样的音效需求。透……
遍地足疗店,为何洗不出一家大公司?几乎所有的足疗店,一旦开始壮大,都无法挽回地走向分崩离析。2018年1月10日,互联网筹款平台轻松筹上悄然多了一个重病求助者。这位求助者叫富侨四哥,他称自己肝硬化晚……
豆瓣走到线下长期以来,豆瓣在人们的印象中是一个文艺青年的线上精神角落,这个社区从图书、音乐、电影起步,逐步扩展为涉及年轻人的生活、人文、闲趣、感情等多元化的文化生活线上空间。近日,豆……
笔记本同样是i7,为什么有的卖5千有的卖1万,笔记本选购之C本文是小编辛辛苦苦整理码字所得,希望大家点下关注转发,后期更多精彩内容呈现自从本人做了自媒体发现好多网友都会问我同样的问题,明明两款笔记本的CPU都是i7处理器,为什么商……
LED一体机产品的竞争推动了11。99mm点间距产品出货增长随着疫情逐渐恢复,许多品牌开始积极地将重点放在扩大产品组合上,以适应不同垂直市场中出现的新机会。这一产品形态降低了在各类解决方案中定制化安装的成本和复杂性,特别是在控制室、政企……
关于产能规划LED显示屏厂透露了这些今年,MiniLED热度大增。5月27日,MiniLED板块涨幅达3,成交110。74亿元,换手率1。11。在股市热情高涨的同时,显示屏大厂动向也引起了关注,近日,利亚德和洲明……
智慧城市建设热潮下的LED灯杆屏发展机遇随着今年智慧城市进程的推进,智慧灯杆作为智慧城市建设的重要载体,以更快的速度在全国各地落地,2020年12月第1部多功能智慧杆国家标准出台,标志着我国智慧灯杆在逐渐走向标准化。……
TCL小蓝翼智慧新风空调探店体验目前市面上空调与新风融合很好的TCL智慧新风空调探店体验,客观中立分析优缺点,欢迎理性一起探讨。什么是新风空调?为了满足日益提高的生活质量,人们开始购置越来越多的电器种类……
今年基金你们赚了吗?玩基金两年半了,19年玩了一年逢低买入逢高卖出,起初赚了一点,20年初因为新冠股市熔断了几次,赚的钱全吃回去了,截止三月份中旬亏了有八百多,于是全卖出重新开了一个账号决定做定投……
GameFi链游是传统游戏的新升级电子游戏从诞生起,直到今天依旧是全球最受欢迎的娱乐方式。根据数据显示,在2021年,全球每年传统游戏市场直接收入在1750亿至2200亿美元之间,比全球疫情之前的2019年多出……
财商教育平台如何判断好与坏?赢马学堂是好的财商教育平台吗?如今,财商教育已被许多人列为了必修课程,甚至有有些人宁愿牺牲自己的休息时间也要去培养财商,出现这样的社会趋势并非是没有原因的。首先,现在的社会生活越来越好,每个人的生活也有了一……
这4款最佳的千元机,外观精致配置给力很多时候消费者在购买手机的时候最看重的还是产品的性价比吧!在当下手机市场其实最不缺乏的就是超高的性价比了吧!华米OV都没有坐以待毙,拿出了高端的旗舰手机的同时,也不忘记在千元机……