最近在项目中遇到一个交互过慢的问题,在进行其他操作的时候,就必须要中断上次请求,以免页面卡顿,具体实现代码如下:
配置文件:request.js
import axios from 'axios'
const service = axios.create({
baseURL: process.env.BASE_API, // api 的 base_url
timeout: 108000000 // request timeout
})
export default service
方法:
import request from '@/utils/request'
import axios from 'axios'
export function breakAxios (data, that) {
return request({
url: 'xxxxxx',
method: 'post',
data,
cancelToken: new axios.CancelToken(function executor (c) {
// 设置 cancel token
that.source = c
})
})
}
组件中调用方法:
import axios from 'axios'
<script>
export default {
components: {},
data () {
return {
// axios请求中断
source: null
}
},
methods: {
aa(){
breakAxios(p, that).then(function (res)