AbortController

什么是AbortController?

  • AbortController 是现代浏览器提供的 Web API,用于中止一个或多个 Web 请求。它已经成为取消异步操作的标准方式。

AbortController 对象 和 AbortSignal 对象

  • AbortController 对象:主控制器,用于创建和管理中止信号
  • AbortSignal 对象:通过 controller.signal 访问、用于传递给可中止的操作(如 fetch、Axios 请求)、包含一个 aborted 属性,表示是否已被中止

工作原理

  1. 创建一个 AbortController 实例
  2. 将它的 signal 属性传递给可中止的操作
  3. 当需要取消时,调用 controller.abort()
  4. 操作会检测到 signal 的中止状态,停止执行

实际应用场景

  1. 用户离开页面时取消未完成的请求
  2. 搜索框输入时取消前一个搜索请求
  3. 上传/下载大文件时提供取消功能
  4. 竞态条件处理(确保只处理最新请求的响应)
posted @ 2025-06-10 16:52  HuangBingQuan  阅读(54)  评论(0)    收藏  举报