项目需求:

数据列表批量选择提交购物车,一次性提交数据量过大接口会报错,传递的参数是选中数据id的数组。项目运行很久了不做大改动,将提交数据总数限制在2000条以内,每500条走一次接口。

思路:

1.写一个将大数组拆分多个小数组的方法,arr为大数组,len为要拆分的小数组长度

arrGroup (arr, len) {
   let index = 0,
        newArr = [];
    while (index < arr.length) {
        newArray.push( arr.slice ( index , index += len ));
    }
    return newArray;
},

2.定义每次传多少条数据,调用方法获取新的数组,新数组的length就是要循环调用接口的次数

let count = 500; // 每个小数组的length
let newIdsArr = this.arrGroup(this.ids, count)
newIdsArr.forEach(item => {
    this.$ajax.post(url, { id: item.join(",")})
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.log(err);
    });
})