我大概理解需求为:初始N个请求,每次进行一个请求前要先调用一个验证方法,有权限才能进行,否则中断。
(如果理解错误请留言再一起讨论)
两个方案:
1.不推荐每次请求前都进行权限校验,条件允许的话改为在http-cookie或http-header等中使用token,可以自行百度“前端鉴权”,方法很多。
2.无法使用token,在现有方法中修改
思路:异步是个大问题,所以校验方法可以搞个同步,N个请求需要挨个执行,使用promise。
function add(callback) {
// 鉴权请求
$.ajax({
url: url,
async: false, // 同步
data: data,
success: function (res) {
if (res === 1) {
callback()
} else {
console.log('error')
throw 'throw error1'; // 无权限时捕获err中断请求
}
}
})
}
// 开始载入请求
function a() { console.log('a') }
function b() { console.log('b') }
function c() { console.log('c') }
function d() { console.log('d') }
Promise.resolve()
.then(add(a))
.then(add(b))
.then(add(c))
.then(add(d))
.catch(err => { console.log('errrrrrrrr') })