function sendRequest () {
var isSend = false;
var requestTimer = null;
var subscribers = [];
return function (config, resolve, reject) {
if (!isSend) {
isSend = true;
// 刷新token的方法
handleRefreshToken().then(res => {
isSend = false;
subscribers.forEach((callback) => {
callback()
})
subscribers = [];
});
}
subscribers.push(() => {
let header;
let myToken = getToken();
header = {
...config.header,
"Authorization": "Bearer " + myToken
}
axios({
...config,
headers: {
...config.headers,
"Authorization": myToken ? "Bearer " + myToken : ""
}
}).then(r => {
console.log(r)
resolve(r.data);
})
})
}
}
// 创建对象
let setTokenRequest = sendRequest()
// 在接口报403或401的地方调用
if(code == 401 || code==403){
return new Promise((resolve, reject) => {
setTokenRequest(config, resolve, reject)
})
}
refresh token
最新推荐文章于 2024-09-30 15:42:36 发布