AbortController 取消请求
时间: 2024-01-09 17:06:02 浏览: 255
AbortController 是一个用于取消 Fetch API 请求的接口。通过创建一个 AbortController 对象,可以在需要的时候调用其 `abort()` 方法来取消对应的请求。
以下是一个使用 AbortController 取消请求的示例代码:
```javascript
const controller = new AbortController();
const signal = controller.signal;
fetch(url, { signal })
.then(response => {
// 处理响应
})
.catch(error => {
if (error.name === 'AbortError') {
console.log('请求已取消');
} else {
console.log('请求发生错误:', error);
}
});
// 在需要的时候调用 controller.abort() 来取消请求
controller.abort();
```
在上述代码中,首先创建了一个 AbortController 对象,并通过 `.signal` 属性获取一个用于传递给 Fetch API 的信号对象 `signal`。然后,在发起 Fetch 请求时,将 `signal` 作为请求的 `signal` 参数传入。最后,通过调用 `controller.abort()` 方法来取消请求。
当调用 `abort()` 方法时,Fetch 请求将会被中止,并触发一个 `AbortError` 错误。在 `.catch()` 中可以通过判断 `error.name` 的值是否为 `'AbortError'` 来判断请求是否被取消。
这样,你就可以使用 AbortController 来实现请求的取消功能。
阅读全文