可以使用一个“锁”来控制只发出一个请求,可以使用以下步骤来实现:
- 在发出请求前设置一个“锁”,表示当前已经有一个请求正在进行中。
- 发出请求前先检查“锁”的状态,如果已经被锁住,则直接返回或者等待一段时间后再次检查。
- 当请求完成后,释放“锁”,使得其他请求可以继续发出。
以下是一个示例代码:
// 创建一个锁对象 var requestLock = { locked: false }; // 发出请求 function sendRequest() { // 检查锁状态 if(requestLock.locked) { return; } // 锁定 requestLock.locked = true; // 发送请求 fetch('/api/data') .then(function(response) { // 处理请求结果 // ... // 解锁 requestLock.locked = false; }); }
当有多个同时发出请求时,只有第一个请求会被执行,其他请求会直接返回,等待第一个请求完成后再次检查锁状态。