Vue 3 中请求取消怎么使用 AbortController 终止正在进行的请求

云辰大大_2815

云辰大大_2815

2026-10-22

960人浏览

原创

vue 3 中用 abortcontroller 终止请求需每次新建实例,响应式变化时取消旧请求、组件卸载时清理、捕获 aborterror 忽略处理。

vue 3 中请求取消怎么使用 abortcontroller 终止正在进行的请求

在 Vue 3 中用 AbortController 终止正在进行的请求,关键不是“强行掐断网络”,而是让当前请求感知到中止信号,并提前退出后续逻辑。核心在于:每次请求配一个独立的 AbortController,在新请求发起前取消旧的,在组件卸载时清理当前的,同时正确处理 AbortError。

每次请求新建 controller,不复用

AbortController 实例只能调用一次 abort(),之后它的 signal.aborted 永远为 true。若把已 abort 的 signal 再传给新请求,该请求会立刻失败。

  • ✅ 正确做法:每次调用 fetch 或 axios.get 前,都执行 new AbortController()
  • ❌ 错误做法:全局声明一个 controller,反复调用 abort() 并重用其 signal
  • 示例:const controller = new AbortController(); fetch('/api/search', { signal: controller.signal })

响应式参数变化时主动取消上一轮请求

比如搜索框输入关键词,用户连打 “vue”,你不想让 “v”、“vu”、“vue” 三个请求都跑完——后发的应取消前两个。

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.2万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习