最近在项目中遇到了多批量处理的需求,想着对于批量处理这种情况一般都是后端的小伙伴进行处理,前端提供一个需求批量处理的list即可,但是后端的小伙伴不支持,因此想到了前端可以通过axios.all或者promise进行实现
axios的方式
axios静态的all方法和sprend可以实现并发请求,all方法中的参数是个数组 数组的没一项则代表的是一个请求,通过then的方式可以获取到所有成功的返回值数组
get function test001(){
return axios({
methods:"get",
url:"test001.jsp"
})
}
get function test002(){
return axios({
methods:"post",
url:"test002.jsp",
params:{
name:“张三”,
age:"121"
}
})
}
axios.all([gettest001(),gettest002()]).then(data=>{
console.log(data)//data则是上述请求中 获取的返回值数据
)
上述代码有个弊端就是当并发请求中存在某一个请求是faild的是时候 则会阻塞返回值,,为了解决这一问题我们将上的代码改在。
get function test001(){
return axios({
methods:"get",
url:"test001.jsp"
}).catch(error=>error)//单个错单个抛出 不进行并发响应的阻塞
}
get function test002(){
return axios({
methods:"post",
url:"test002.jsp",
params:{
name:“张三”,
age:"121"
}
}).catch(error=>error)
}
axios.all([gettest001(),gettest002()]).then(data=>{
console.log(data)//data则是上述请求中 获取的返回值数据
)
promise和axios的方式基本类似.