vue 中 使用 axios 实现防抖功能
利用axios中的 cancelToken实现防抖功能<template><input type="text" v-model="val"><template><script>import axios from "axios";export default {name: 'hello',data()...
·
利用axios中的 cancelToken实现防抖功能
<template>
<input type="text" v-model="val">
<template>
<script>
import axios from "axios";
export default {
name: 'hello',
data() {
return{
val: '',
canMsg: '请求终止',
},
methods: {
cancelReq() {
if (typeof this.source === 'function') {
this.source(canMsg);
}
}
},
watch: {
val(newVal) {
var that = this;
this.cancelReq();
axios.get('xxx', {
cancelToken: new axios.CancelToken(function(c) {
that.source = c;
})
}).then((res) => {
...
}).catch((err) => {
if (axios.isCancel(err)) {
// 返回取消请求信息
console.log('Rquest canceled', err.message);
} else {
console.log(err);
}
})
}
}
}
</script>
更多推荐
已为社区贡献1条内容
所有评论(0)