我正在尝试在本机项目中的 axios 拦截器中实现去抖动。我需要等待几秒钟,然后组合参数数组并发送一个请求。
axiosInstance.get(endpoint, {params: {ids: [1, 2]}});
axiosInstance.get(endpoint, {params: {ids: [3]}});
axiosInstance.get(endpoint, {params: {ids: [2]}});
var params = [];
instance.interceptors.request.use(
request => {
params = [...params, ...request.params.ids];
return new Promise(resolve =>
setTimeout(() => {
request.params = {ids: params};
console.log('request: --->', request.params);
resolve(request);
}, 1000),
);
},
error => Promise.reject(error),
);
// Requests
LOG request: ---> {"ids": [1, 2, 3, 2]}
LOG request: ---> {"ids": [1, 2, 3, 2]}
LOG request: ---> {"ids": [1, 2, 3, 2]}
我只需要发送一个请求而不是发送三个请求。我该如何解决这个问题?