判断接口是否可以请求,不能请求执行下一个接口,可以请求不执行下一个接口
时间: 2024-04-21 07:26:13 浏览: 18
您可以使用 `fetch` 函数或 `XMLHttpRequest` 对象来发送异步网络请求,并在请求完成后检查响应状态码来判断接口是否可以请求。
以下是一个使用 `fetch` 函数实现的示例代码,其中包含了对多个接口的请求和检查:
```javascript
const urls = ['http://example.com/api1', 'http://example.com/api2', 'http://example.com/api3'];
let index = 0;
function request() {
if (index >= urls.length) {
console.log('All requests completed.');
return;
}
fetch(urls[index])
.then(response => {
if (response.ok) {
console.log(`Request ${index + 1} succeeded`);
index++;
request();
} else {
console.log(`Request ${index + 1} failed`);
}
})
.catch(error => {
console.log(`Request ${index + 1} failed`);
});
}
request();
```
在这个实现中,我们首先声明一个包含多个接口 URL 的数组。然后,我们定义一个 `request` 函数,该函数用于发送请求并检查响应状态码。在函数中,我们首先检查当前请求的数组索引是否超出了 URL 数组的长度。如果超出,则说明所有请求都已完成,我们将打印消息并返回。
否则,我们使用 `fetch` 函数发送当前 URL 对应的请求。在响应处理函数中,我们使用 `response.ok` 属性来检查响应状态码是否为 200(即请求成功)。如果是,则说明该接口可以请求,我们将打印消息并将索引增加 1,并递归调用 `request` 函数以请求下一个接口。如果响应状态码不为 200,则说明该接口不可用,我们将打印消息并不执行下一个接口的请求。
请注意,这里的请求是异步的,因此当请求完成时,会调用相应的响应处理函数,而不会阻止代码继续执行。这意味着在请求完成之前,代码会继续执行 `request` 函数后面的代码。