问题场景:很多时候,我们的提交按钮联系点好多次,或者我们的change事件联系触发好多次,但是可能有的请求返回错误,有的有数据,接着,在接口请求超时或者是返回成功的时候,就会出现页面上可能一直在弹出请求失败的消息,而下拉中缺有数据的尴尬请求。
为了解决这个问题,我们需要对axios进行处理:
引入axios
import axios from 'axios';
const CancelToken = axios.CancelToken;
在全局先定义一个cancle变量
window.cancle=null;
.... //省略其他代码
res = await axios({
url: `${process.env.apiBase}${url}`,
method,
data,
params,
timeout,
//跨域请求是否需要凭证,默认false
withCredentials,
headers,
responseType,
cancelToken: new CancelToken(function executor(c) { 在axios封装的函数中写上这句就可以了
window.cancle = c;
})
})
....省略其他代码
然后我们使用的话就可以直接使用了cancle函数了:
handleSourChange(value){
cancle(); // 调用函数
if(value){
this.getTableListFn(value);
}
}