不用ajax 后台的异步实现,js 怎么避免重复的异步操作(不问了,目前没办法后台做到,只能改造前端了)...

我大概理解需求为:初始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') })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值