乐趣区

关于javascript:axios-多个请求拦截器的执行顺序和响应拦截器的执行顺序

axios chains 数组来保留申请拦截器和 ajax 申请以及相应拦截器的办法,然而对于申请拦截器是用 unshift 传入到 chains 中的,对响应拦截器采纳 unshift 例如
request.hanlders.forEach(item=>chains.unshift(item))
对于 response 拦截器来说是 push
response.hanlders.forEach(item=>chains.push(item))
调用的时候也是用 chains
while(chains.length>0){

promise    =    promise.then(chain.shift(),chain.shift())

}
return promise

从下面来讲就能晓得为什么 申请拦截器是倒序执行的,响应拦截器是正序执行的
申请拦截器 1 = {fullied,reject}
申请拦截器 2 = {fullied,reject}
响应拦截器 1 = {fullied,reject}
响应拦截器 2 = {fullied,reject}
chains = [申请拦截器 1, 申请拦截器 2,dispatchRequest,undefined, 响应拦截器 1,响应拦截器 2]
该文章只为本人记录学习应用

退出移动版