有必要在收到请求的时候,中断之前的同一个请求,能不能看一下这段代码,提示一下哪里出了问题,需要修复什么?我将不胜感激。一起使用了 AbortController 和 CancelToken。
getUsers ({
commit
}, { search }) {
const controller = new AbortController()
const CancelToken = axios.CancelToken
const source = CancelToken.source()
return new Promise((resolve, reject) => {
commit('preloaderStatus')
axios({
url: apiUrl + `/api/users?search=${search}`,
method: 'GET',
cancelToken: source.token,
signal: controller.signal
})
.then(resp => {
commit('preloaderStatus')
resolve(resp)
})
.catch(err => {
commit('preloaderStatus')
reject(err)
})
source.cancel('Operation canceled by the user.')
controller.abort()
})
}
问题是在我这里数据完全停止加载。我需要添加条件吗?但我在其他例子中看不到它。
我希望我理解正确:您并行发送请求并立即取消它。并且到发送的时候,请求取消标志已经设置,请求甚至没有去任何地方。
但在控制台中,您可以通过
catch
.可以做什么:
将请求的取消推入一个函数或创建一个将取消请求的条件。
在开发者工具的“网络”部分,设置最低连接速度——在我的火狐中是 GPRS。在这些情况下,请求将被发送足够长的时间,以便在开发者控制台的网络部分中看到它并取消。下面的代码有效。