在 axios 拦截器中去抖动

时间:2021-06-15 19:36:40

标签: react-native axios interceptor debounce

我正在尝试在本机项目中的 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]}

我只需要发送一个请求而不是发送三个请求。我该如何解决这个问题?

0 个答案:

没有答案