Skip to content

axios 是否可以取消请求

  • 关键词: 取消请求

Axios 可以取消请求。官方文档指出有两种方法可以取消请求,分别是cancelTokenAbortController,示例代码如下:

  • 使用cancelToken的方法一:
js
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
axios.post("/user/12345", { name: "new name" }, { cancelToken: source.token });
source.cancel("Operation canceled by the user.");
  • 使用 cancelToken的方法二:
js
const CancelToken = axios.CancelToken;
let cancel;
axios.get("/user/12345", {
  cancelToken: new CancelToken(function executor(c) {
    cancel = c;
  }),
});
cancel();
  • 使用AbortController
js
const controller = new AbortController();
axios.get("/foo/bar", { signal: controller.signal }).then(function (response) {
  //...
});
controller.abort();

通过文档描述和示例代码,可以总结出以下功能点:

  • 支持cancelToken取消请求,cancelToken可以通过工厂函数产生,也可以通过构造函数生成;

  • 支持 Fetch APIAbortController取消请求;

  • 一个token/signal可以取消多个请求,一个请求也可同时使用token/signal

  • 如果在开始axios request之前执行了取消请求,则并不会发出真实的请求。

Released under the MIT License.