axios.all 并发多次发起请求?
getInfo(){
var that = this
let obj = {
banner: axios.get(that.url + 'home.php?Action=banner&setaction=banner'),
logo: axios.get(that.url + 'home.php?Action=advertising&setaction=logo'),
code: axios.get(that.url + 'home.php?Action=advertising&setaction=code'),
himg: axios.get(that.url + 'home.php?Action=advertising&setaction=himg'),
link: axios.get(that.url + 'home.php?Action=infolist&QType=link'),
qq: axios.get(that.url + 'home.php?Action=infocontent&setaction=qq'),
mail: axios.get(that.url + 'home.php?Action=infocontent&setaction=mail'),
phone: axios.get(that.url + 'home.php?Action=infocontent&setaction=phone'),
Hotline: axios.get(that.url + 'home.php?Action=infocontent&setaction=Hotline')
}
return obj
}
var that = this
axios.all([that.getInfo().banner, that.getInfo().logo, that.getInfo().code,
that.getInfo().himg, that.getInfo().link, that.getInfo().qq, that.getInfo().mail,
that.getInfo().phone, that.getInfo().Hotline
])
.then(axios.spread(function(banner,logo,code,himg,link,qq,mail,phone,Hotline){
that.banner = banner.data
var swiper1 = new Swiper('.banners', {
pagination: {
el: '.swiper-pagination',
},
autoplay: true,
speed: 800,
observer:true,
});
that.logo = logo.data.photo
that.code = code.data.photo
that.htxtimg = himg.data.photo
that.link = link.data
that.qq = qq.data.Content
console.log(qq);
that.mail = mail.data.Content
that.phone = phone.data.Content
that.Hotline = Hotline.data.Content
}))
如图,axios.all()里面有多少个,就会请求少次,不是同时一齐只发一次...
各路大神有没什么解决方案,或是拆开一个一个发?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
请求是在
getInfo
里一起发的啊axios.all()的目的是批量发送请求,等所有请求都有返回时,再执行统一的回调,并不是把所有的请求合并成同一个请求发送
不能,因为https://github.com/axios/axio...
需要的话可以自己实现
@Jon_Li 解释的很清楚。
你把接口写成多个,又妄想axios给你合并到一起!axios库的功能没弄清楚吧
你接口设计的问题吧。axios不会合并请求,你有多少个请求它就会发出多少个请求,对于浏览器来说一次可以发出的请求是有上限的,对于ajax来说,任何的请求都会有一个等待的过程(或多或少)。