我有数千个HTTP请求想要尽快请求完成,然后把请求结果装到一个数组内。 请问有什么方法可以进行实现?

我有数千个HTTP请求想要以最快的方式请求完成,,然后把请求结果装到一个数组内。
请问有什么方法可以进行实现?

阅读 621
2 个回答

Promise.all

不要用 Promise.all 这个是跑顺序执行的,
正常跑 异步请求,然后通过监听+防抖的形式就好了,
浏览器扛得住吗?
这么多的请求数据格式不统一怎么办?
如果是你自家公司的服务,服务器会宕机吗?别搞成doss攻击被墙了
让你的后端同伴去统一数据到一个接口里面吧

data(){
    return {
        // 认为 arr 是所有需要执行的请求地址
        // 或者同一个请求地址的次数,X
        arr: [***],
        data: [],
    }
}

// 执行
arr.map(path => {
    ajax({ url: path }).then((res) => {
        data.push(res)
    })
})

// 监听
computed: {
    dataLen(){
        return data.length    
    }
}

watch: {
    // 在你的数据增加之后更新显示效果
    // 缺点是不太稳定,如果存在间隔 1000 之上的会导致画面抖动
    dataLen(){
        _.debounce(fn, 1000)    
    },
},
推荐问题