如何写一个优秀的接口请求防重方法?

11 min read

为了防止重复请求接口,你可以考虑使用某个变量来存储上一次请求接口的时间戳,比如 lastRequestTime。具体实现方法如下:

1.在发送请求之前,获取当前时间戳。可以使用 Date.now() 方法或者 new Date().getTime() 方法来获取时间戳。

2.将当前时间戳和上一次请求的时间戳进行比较,如果时间间隔不足 1 秒,则不发起新的请求。

3.如果时间间隔超过 1 秒,则更新 lastRequestTime 变量为当前时间戳,并发起接口请求。

4.请求完成后,更新 lastRequestTime 为当前时间戳。

下面是一个简单的示例代码:

let lastRequestTime = 0; // 上一次请求的时间戳

function sendRequest() {
  const currentTime = Date.now(); // 获取当前时间戳

  // 判断时间间隔是否不到1秒
  if (currentTime - lastRequestTime < 1000) {
    console.log('请求过于频繁,1秒后再试');
    return;
  }

  // 发起请求
  console.log('发送请求...');
  lastRequestTime = currentTime; // 更新时间戳
  // 发送请求代码...
}

在应用程序中调用 sendRequest() 函数即可。每次请求完成后,lastRequestTime 变量会被更新为当前时间戳。