axios如何取消已经发送的请求
有时候接口请求很慢,会导致一些问题,比如想请求第四条数据的内容,但是请求回来的却是第一条数据,我们要把前三条请求停止
axios文档给出了取消请求的方法
import ax from 'axios'
var CancelToken = ax.CancelToken
export const searchInfo = (data) => {
return axios.request({
url: baseUrl + 'dmErpFetchInfo/searchInfo',
method: 'post',
data,
datatype: 'json',
cancelToken: new CancelToken(function executor (c) {
// An executor function receives a cancel function as a parameter
window.cancelWay = c
})
})
}
在获取数据方法中可以使用
getDmErpFetchInfoData (id) {
console.log(window.cancelWay,987987)
if (window.cancelWay){ //每次调用该接口判断一下,如果有,则停止该接口
let fun=window.cancelWay
fun()
}
searchInfo(data)
.then(function (response) {........}
}