我用的是axiosvue.js.我用谷歌搜索了一下,查看了axios文档,但还是不知道怎么做.

推荐答案

2020 UPDATE: How to cancel an axios request

generate a cancelToken and store it

import axios from 'axios'
const request = axios.CancelToken.source();

pass the cancelToken to the axios request

axios.get('API_URL', { cancelToken: request.token })

Access the request you stored and call the .cancel() method to cancel it

request.cancel("Optional message");

See it live on a tiny app on codesandbox



看看axios cancellation



一个简单的例子,你可以see it live.

HTML:

<button @click="send">Send</button>
<button :disabled="!request" @click="cancel">Cancel</button>

JS

import axios from "axios";

export default {
  data: () => ({
    requests: [],
    request: null
  }),

  methods: {
    send() {
      if (this.request) this.cancel();
      this.makeRequest();
    },

    cancel() {
      this.request.cancel();
      this.clearOldRequest("Cancelled");
    },

    makeRequest() {
      const axiosSource = axios.CancelToken.source();
      this.request = { cancel: axiosSource.cancel, msg: "Loading..." };
      axios
        .get(API_URL, { cancelToken: axiosSource.token })
        .then(() => {
          this.clearOldRequest("Success");
        })
        .catch(this.logResponseErrors);
    },

    logResponseErrors(err) {
      if (axios.isCancel(err)) {
        console.log("Request cancelled");
      }
    },

    clearOldRequest(msg) {
      this.request.msg = msg;
      this.requests.push(this.request);
      this.request = null;
    }
  }
};

Vue.js相关问答推荐

如何以惯用的方式触发 vue3 中同级组件的效果?

Vuetify 3 - NavBar 组件占据整个视口高度

Vue 3 范围滑块中的多个值

如何将字符串中的
解析为 VUE.js 中的 html 标记

如何只查看数组中的一个对象?

带有 vue.js 的 img 网址

单击链接会更改 url,但不会更改页面上的内容/数据

Vuejs在复选框 Select 上切换div可见性

Vue 3 - 带有全局组件的无法解析组件

如何在 VUE 应用中使用 sass?

为什么 v-model 不适用于数组和 v-for 循环?

输入文件 Select 事件在 Select 同一文件时未触发

执行调度程序刷新期间未处理的错误,这可能是一个 Vue 内部错误

将 SignalR 与 Vue.js 和 Vuex 集成

Vue Js如何在单个文件模板中使用mixins?

从 vuex 存储访问 $vuetify 实例属性

带有 Firebase 云消息传递的 Vue pwa 无法正常工作

检测 Vue-Router 导航Guards中的后退按钮

在 Vuex 模块中进行继承的方法

VueJS 按键查找元素