在 Axios 中取消请求的 2 种方法
这篇简明扼要的文章向您展示了在 Axios 中取消最近发送的请求的两种不同方法。事不宜迟,让我们开始吧。
使用 AbortController
如果您正在使用新版本的 Axios 开发项目,则鼓励使用这种方法。以下是步骤:
1.创建控制器:
const controller = new AbortController();
- 发出请求时,将信号选项设置为controller.signal:
try {
const response = await axios.get('https://fake-api.kindacode.com', {
signal: controller.signal,
});
console.log(response);
} catch (error: any) {
if (axios.isCancel(error)) {
console.log('Request canceled', error.message);
} else {
console.log(error);
}
}
- 调用controller.abort() 来取消请求(这可以通过编程方式或用户操作完成):
controller.abort();
这将触发 catch 块并打印“请求取消”。
使用 CancelToken
如果您使用的是旧版本的 Axios (< 0.22),这种方法是一个不错的选择。否则,请使用第一个解决方案。
步骤:
- 创建源。
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
2.发出请求时将cancelToken属性设置为source.token :
try {
const response = await axios.get('https://fake-api.kindacode.com', {
cancelToken: source.token,
});
console.log(response);
} catch (error: any) {
if (axios.isCancel(error)) {
console.log('Request canceled', error.message);
} else {
console.log(error);
}
}
3.可以通过触发source.calcel() 方法取消请求:
source.cancel('Operation canceled by the user.');
这将引发 Cancel 错误,您可以在catch() 块中捕获它。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。