【译】使用 Axios 拦截器中止 Vue 请求

大家好,这里是大家的林语冰。

免责声明

本文属于是语冰的直男翻译了属于是,仅供粉丝参考,英文原味版请临幸 AbortController --- Abort ongoing calls in Vue with Axios interceptor

假设 App 的用户可以在短时间内进行多个 API 调用,但您只想显示上次调用的结果。之前正在进行的请求变得无关紧要。在这种情况下,您可以利用 Axios 拦截器。

诉诸 Axios 拦截器,您可以在 then/catch 方法处理请求或响应之前拦截它们。

一个现实生活中的例子是对数据进行过滤或排序。当用户多次单击排序按钮时,它们希望看到上次排序请求的结果。因此,我们可以取消之前所有正在进行的 API 调用。

首先,我们需要创建 axios.ts,在其中实现拦截器。在此文件中,我们将使用 cancelPreviousRequest 属性扩展 AxiosRequestConfig。此属性将指明在发送新的 API 请求时是否应取消正在进行的调用。

然后我们需要添加新的映射表,我们会在其中存储待处理的请求。

现在让我们实现请求拦截器,现在就是见证奇迹的时刻。

最后一件事是拦截响应并从待处理请求映射中删除已完成的调用。

差不多就是这样。现在,您只需将 cancelPreviousRequests: true 传入你的 API 调用配置,请求将被取消。

通过此技术,您可以简化 App 的性能,减少不必要的网络流量,并提供更流畅的 UI。

因此,请继续在您的项目中实现 Axios 拦截器,并控制 API 请求的处理,以获得更高效、更优的 App。

友情赞助

您现在收看的是前端翻译计划,学废了的小伙伴可以订阅此专栏合集,我们每天佛系投稿,欢迎持续关注前端生态。谢谢大家的点赞,掰掰~

相关推荐
用户6600676685399 分钟前
从变量提升到调用栈:V8 引擎如何 “读懂” JS 代码
前端·javascript
白兰地空瓶9 分钟前
【深度揭秘】JS 那些看似简单方法的底层黑魔法
前端·javascript
进阶的小叮当13 分钟前
Vue代码打包成apk?Cordova帮你解决!
android·前端·javascript
程序媛_MISS_zhang_011022 分钟前
浏览器开发者工具(尤其是 Vue Devtools 扩展)和 Vuex 的的订阅模式冲突
前端·javascript·vue.js
fruge24 分钟前
Vue3.4 Effect 作用域 API 与 React Server Components 实战解析
前端·vue.js·react.js
神秘的猪头37 分钟前
🌐 CSS 选择器详解:从基础到实战
前端·javascript
Zyx200737 分钟前
JavaScript 执行机制深度解析(上):编译、提升与执行上下文
javascript
神秘的猪头39 分钟前
JavaScript 中的 `map()` 方法详解与面向对象编程初探
前端·javascript
烟袅41 分钟前
JavaScript 中 map 与 parseInt 的经典陷阱:别再被“巧合”骗了!
前端·javascript
烟袅43 分钟前
JavaScript 中 string 与 new String() 的本质区别:你真的懂“字符串”吗?
前端·javascript