axios.all 并发响应回调如何能让其只触发一次?

发布于 2022-09-11 18:18:44 字数 2166 浏览 15 评论 0

问题如下:

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
    }))



clipboard.png

问问题经常说不明白,所以加张截图吧!

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦中楼上月下 2022-09-18 18:18:44

造成多次请求的原因是你多次运行了getInfo函数,that.getInfo(),这个函数里面会重复发送axios请求,可以这么写

let obj = that.getInfo();

axios.all([obj.banner, obj.logo, obj.code,
    obj.himg, obj.link, obj.qq, obj.mail,
    obj.phone, obj.Hotline
])
.then()
初懵 2022-09-18 18:18:44

这个地方直接就会把所有请求发出去,axios.get()直接就执行了啊
clipboard.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文