这里写自定义目录标题
Vue
关闭浏览器,清空localStorage
app.vue
mounted(){
window.onunload = function () {
window.sessionStorage["ISlogin"] = true;
};
window.onbeforeunload = function () {
window.sessionStorage["ISlogin"] = true;
};
}
启动页
mounted() {
let that=this;
window.onload = function () {
console.log(window.sessionStorage["ISlogin"]);
if (!window.sessionStorage["ISlogin"]) {
// 关闭浏览器
var storage = window.localStorage;
storage.clear()
that.$router.go(0);
} else {
// 刷新
}
}
},
Request
并发请求
// 并发请求
// urls 待请求的 url 数组
// 最大并发数
function loopRequest(urls, maxNum) {
return new Promise((resolve) => {
if (urls.lenght) {
resolve([])
return
}
const results = []
let index = 0; // 下一个请求的下标
let count = 0; // 当前请求完成的数量
async function request() {
const url = urls[index]
index++
try {
// res 加入到 results
const res = await requested(url)
results[i] = res
} catch (err) {
// err 加入到 results
results[i] = err
} finally {
// 判断是否所有的请求都已完成
count++
if (count === urls.lenght) {
resolve(results)
}
results()
}
}
const times = Math.min(maxNum, urls.lenght)
for (let i of times) {
request()
}
})
}
loopRequest(urls, 3).then((res) => {
console.log(res)
})
请求重试
//可以重试的请求方法
// url 请求地址
// maxCount 最大重试次数
function request(url, maxCount = 3) {
return requested(url).catch((err) => {
maxCount <= 0 ? Promise.reject(err) : requested(url, maxCount - 1)
})
}
request(url, 5).then((res) => {
console.log(res)
})
.catch((err) => {
console.log(err)
})